TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Arpchat – Text your friends on the same network using just ARP

469 pointsby louismerlinalmost 2 years ago

21 comments

archmasteralmost 2 years ago
Hey, I made this! I also made this other thing on HN today (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=37062422">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=37062422</a>), really cool to see ArpChat as well (guess someone went through my profile). It was a super fun project and I learned a lot about networking.<p>I actually got a chance to use it in a totally-offline setting a bit ago, which was fun! ... however, I then found a major bug that was causing tons of latency, and I fixed it but I haven&#x27;t gotten around to building new artifacts yet, so you might want to build from scratch if you&#x27;re planning on testing it out in a real setting for some reason. I also added fun username colors and message times. I promise I&#x27;ll upload a new release soon!<p>If you&#x27;re interested, I wrote an article about a year ago about how ArpChat works: <a href="https:&#x2F;&#x2F;kognise.dev&#x2F;writing&#x2F;arp" rel="nofollow noreferrer">https:&#x2F;&#x2F;kognise.dev&#x2F;writing&#x2F;arp</a>
评论 #37071286 未加载
评论 #37065581 未加载
评论 #37066049 未加载
hiAndrewQuinnalmost 2 years ago
Oh heck yeah now this is what I&#x27;m talking about! Data link layer shenanigans!!<p>For that of you who have no idea what the Address Resolution Protocol (ARP) is, to a first approximation it is the missing link between your MAC address (what Ethernet runs on) and your IP address (what Internet runs on). After your IP routing table, which you can see with `route`, decides what immediate next IP address to forward a packet to, then your ARP cache, which you can see with `arp`, will decide which MAC address that IP correspond to (usually your router&#x27;s local IP address).<p>Knowing that ARP even exists is considered mild esoterica today, to say nothing of its IPv6 sibling the Network Discovery Protocol. But even though you don&#x27;t use it much in modern cloud-based deployments, knowing it exists makes your bird&#x27;s eye view of how the whole network stack works that much more holistic.
评论 #37066887 未加载
评论 #37069403 未加载
评论 #37066952 未加载
评论 #37069273 未加载
gorkishalmost 2 years ago
It&#x27;s fun that it abuses ARP&#x27;s ability to include an arbitrary payload, but just to remind everyone of networking 101, thing that the author is relying on is just the simple fact that switches flood packets addressed to ff:ff:ff:ff:ff to the entire broadcast domain. You can achieve similar message flooding without having to have superuser&#x2F;raw packet permissions by directing packets to the L3 broadcast address whereupon they will (usually) be L2 flooded (Aka it&#x27;s fun to ping the broadcast address.)<p>Using ARP doesn&#x27;t offer any particular advantage, and I would note since many modern switches do thinks like snooping arp packets, putting a high amount of bogus ARP traffic on the network could actually have some negative impact. It&#x27;s still fun at any rate and reminds me of the type of crap that I used to make when I was learning. As alluded to before, I personally would have chosen to abuse ICMP for this purpose; maybe it&#x27;s a future avenue for development. Kudos to the fun project!
评论 #37071139 未加载
评论 #37069861 未加载
评论 #37067045 未加载
jedahanalmost 2 years ago
I love (ab)using protocols that are built-in to most OS&#x27;. I wrote a dumb fake samba share that let people see messages in Finder.app&#x2F;Explorer.exe&#x2F;Gnome&#x2F;KDE since I couldn&#x27;t find a cross-platform gui or cli messaging system that didn&#x27;t require installing special client software. (even netcat invocations were not working when trying on our local network, and had OS-specific flag differences if we wanted to do broadcast).<p>You see the samba share message in your file browser, click it and can edit the filenames to update a 3-line &quot;bulletin board&quot;.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jedahan&#x2F;samba-haiku&#x2F;blob&#x2F;master&#x2F;index.js">https:&#x2F;&#x2F;github.com&#x2F;jedahan&#x2F;samba-haiku&#x2F;blob&#x2F;master&#x2F;index.js</a><p>Even this was a re-implementation that used WIFI ssids to make a captive portal haiku.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jedahan&#x2F;haiku-wifi">https:&#x2F;&#x2F;github.com&#x2F;jedahan&#x2F;haiku-wifi</a>
jandresealmost 2 years ago
This may be even more fun than you expect. We were doing VLANs using hardware from a major vendor to partition a network and discovered that while the VLANs worked most of the time, they were leaky with ARP traffic. It was causing us headaches because the machines were supposed to be sending all of their traffic through the router, but sometimes they were seeing ARP replies that they shouldn&#x27;t and were thinking that the other machines would be reachable directly, causing them to be unable to send traffic until the ARP cache entry timed out. We couldn&#x27;t get the vendor to show any interest in fixing the bug either, because they were too big to care.<p>It&#x27;s possible this chat app could break through VLANs in certain circumstances.
评论 #37065987 未加载
评论 #37065826 未加载
anotherevanalmost 2 years ago
My wife, kids and I all work or study mostly from home, so often all on our computers in our separate crates^H^H^H^H^H^Hrooms. We use Beebeep to be able to message back an forth when needed. It doesn&#x27;t need a server and has both Linux (me) and Windows (everyone else) clients which was the deal clincher.<p>It works pretty well, although sometimes you have to restart after your laptop wakes up before it sees others on the LAN. That and not being able to open a message window to someone direct from the tray icon are really my only grips. Can cut and paste pictures (of funny cats) and even send files and other capabilities I&#x27;ve never used. (This is not a paid advertisement, I&#x27;ve just started rambling.)<p><a href="https:&#x2F;&#x2F;www.beebeep.net&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.beebeep.net&#x2F;</a>
评论 #37077603 未加载
hk1337almost 2 years ago
I did this with &quot;net send&quot; back in high school and got in trouble.
评论 #37066429 未加载
评论 #37065582 未加载
评论 #37064736 未加载
评论 #37065556 未加载
评论 #37065186 未加载
评论 #37065470 未加载
jiveturkeyalmost 2 years ago
super neat.<p>&gt; I also described ARP as a layer 3 protocol. There’s some contention on this — while I think this is the most accurate and easiest explanation, networking is more nuanced than the OSI model might convey. Some would describe ARP as a level 2 or even level 2.5 protocol. For our purposes, I believe calling it level 3 makes the most sense.<p>TCP&#x2F;IP doesn&#x27;t follow the OSI model, so the nuance of OSI isn&#x27;t directly applicable. ARP is practically defined (ref Stevens) as being in layer 2.5 (of the TCP&#x2F;IP model), so i believe calling it 2.5 would make the most sense.<p>and i mean, ARP frames aren&#x27;t routable. so they clearly aren&#x27;t L3.
IgorPartolaalmost 2 years ago
Back when IPv4 NAT was sort of standard (still is but so is IPv6 as well as GCNAT now), I created a thing I called NATChat. It would basically just create a chat room for you based on your public IPv4 address, allowing you to chat with anyone on your network. Was kinda neat to use in office with others (back when that was also a thing).
prgtalmost 2 years ago
Other similar in c++: <a href="https:&#x2F;&#x2F;github.com&#x2F;gbonacini&#x2F;arpchatcpp">https:&#x2F;&#x2F;github.com&#x2F;gbonacini&#x2F;arpchatcpp</a>
conradfralmost 2 years ago
That&#x27;s fun!<p>That reminds me of a chat software that I did in Delphi 3 back in 1999&#x2F;2000 (being not that much older than OP) for our LAN parties, that was basically broadcasting on 255.255.255.255 [0]<p>It was inspired by Kali (remember Kali? [1]) and IRC.<p>I think it worked until we moved from hubs to switches ;)<p>Keep on coding! :)<p>[0] <a href="https:&#x2F;&#x2F;i.imgur.com&#x2F;IPGPaae.png" rel="nofollow noreferrer">https:&#x2F;&#x2F;i.imgur.com&#x2F;IPGPaae.png</a><p>[1] <a href="http:&#x2F;&#x2F;www.tweak3d.net&#x2F;articles&#x2F;kali&#x2F;images&#x2F;bigchat.jpg" rel="nofollow noreferrer">http:&#x2F;&#x2F;www.tweak3d.net&#x2F;articles&#x2F;kali&#x2F;images&#x2F;bigchat.jpg</a>
评论 #37074046 未加载
vlan0almost 2 years ago
This is neat! Might get your interface disabled though in my network. I rate limit ingress ARP on access ports. :)
teddyhalmost 2 years ago
If you’re limiting yourself to the local network, why use IP at all, when you could use CHAOSNET?
willsmith72almost 2 years ago
I don&#x27;t know much about networking...<p>I&#x27;ve been to ski resorts where there&#x27;s no phone reception, and I love it that way. No one&#x27;s on their phones. But it&#x27;s easy to lose someone for an entire day (or until your agreed meeting time).<p>Is it possible to use something like this to setup a wireless network which would facilitate chat without a connection to the outside world?<p>Ok now that I typed it it sounds crazy but I always thought this should be possible
评论 #37071363 未加载
评论 #37073906 未加载
bgormanalmost 2 years ago
It is also possible to configure device IP addresses directly with ARP <a href="https:&#x2F;&#x2F;jetdirect.printerdepo.com&#x2F;en&#x2F;hp-jetdirect-print-servers&#x2F;tcpip-configuration&#x2F;ipv4-configuration&#x2F;use-the-arp-and-ping-commands-ipv4&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;jetdirect.printerdepo.com&#x2F;en&#x2F;hp-jetdirect-print-serv...</a>
评论 #37077665 未加载
iamthejuanalmost 2 years ago
I did something similar to this before in my old job, because installing of chat applications is unauthorized, the solution I come up with is I created a batch script with easily to identify computer network map so regular users will have problem using it, it utilizes net send command.
lyapunovaalmost 2 years ago
This is a great and fairly accessible project. I&#x27;d like to give this a shot at my local hackerspace!
zackifyalmost 2 years ago
Now I want to try making a chat system where you just query a dns txt record on a set polling interval
catboybotnetalmost 2 years ago
Haha, this is amazing. Going to see if I&#x27;ll get caught using this later today. :)
lsofzzalmost 2 years ago
Déjà vu I wrote an implementation that _exactly_ did this PoC a decade ago.<p>Modern network protocols have so much extra reserved bits that you can add pretty much anything want in it; keep going ;)
cyberaxalmost 2 years ago
Ah, good old days of NetBEUI are finally returning!