Eli Fulkerson .com HomeProjectsWakearp
 

wakearp.exe - force 'arp -a' to fill with data.

Description:

wakearp.exe is a small console utility that very quickly sends UDP packets to all the hosts within a specified /24 network. This causes the arp table on your machine to fill with data about these hosts, which can then be seen via 'arp -a'.

I had originally had this working with a few command flags... (/A /B /C for network sizes, for instance), but quickly discovered that sending 2^16 udp packets in a few seconds, each to a different invalid host IP, is a very good way to make Windows XP very, very angry.

Platform:

  • Win32 Console, Linux
  • Language:

  • C - Under linux, it compiles with g++. Under windows, it compiles it under Microsoft's C Compiler from Visual Studio 6.0
  • License:

  • This is based on the ping source code available at http://cs.ecs.baylor.edu/~donahoo/practical/CSockets/practical/, and thusly is likewise released under the GPL.
  • Usage:

    
    C:\>arp -a
    
    Interface: 192.168.2.100 --- 0x4
      Internet Address      Physical Address      Type
      192.168.2.1           00-13-10-26-d1-39     dynamic
    
    C:\>wakearp 192.168.2
    Trying 192.168.2.0 through 192.168.2.254.
    
    Done! Responses from 192.168.2.0 to 192.168.2.254 should now be in 'arp -a'
    
    C:\>arp -a
    
    Interface: 192.168.2.100 --- 0x4
      Internet Address      Physical Address      Type
      192.168.2.1           00-13-10-26-d1-39     dynamic
      192.168.2.2           00-02-b3-bf-2e-3e     dynamic
      192.168.2.10          00-02-b3-bf-2e-3e     dynamic
      192.168.2.50          00-02-b3-bf-2e-3e     dynamic
    
    C:\>
    

    Download:

    wakearp-with-src.zip - source + executable
    wakearp.exe - just the exe
    wakearp.zip - just the exe
    wakearp-linux - binary and source for linux. Compiled under (gcc version 3.3.5 (Debian 1:3.3.5-2))