Re: Userlevel ARP request

Richard B. Johnson (root@chaos.analogic.com)
Tue, 31 Aug 1999 11:49:33 -0400 (EDT)


On Tue, 31 Aug 1999, Mike Panetta wrote:

> Does the socket code in the kernel allow one to do a userlevel
> arp? I want to create a user level "arp ping" type program
> that if given an IP will report wether or not a machine is on that address
> given an arp reply on the IP. Is this possible? This is to work around
> a windows TCP/IP "bug"...
>

What's the matter with `ping` ?
if ping -c 1 hostname ; then do_something ; fi

...and yes, since `ping` is a user mode program, you can certainly
make your own.

Warning. If you intend to create a program like the Micro$garbage
stuff that pings every possible IP address on your network to see if
some host is up, you will find a lot of unhappy network neighbors.
ARP requests are broadcast. Without disabling your network, you can't
filter them out. This means that they are received by every ISR on
every machine and dumped on the floor. This can (read will) consume
80 to 90 percent of available CPU cycles on every connected machine,
slowing all machines down to a crawl, when you have a hundred or more
Micro$garbage machines pinging all possible hosts on the LAN.
Micro$garbage has been contacted, threatened with Lawsuits, etc.,
but they don't even reply to registered mail.

FYI, I can't even run `tcpdump` on our LAN anymore because it gets
completely overloaded and hangs. Sun's `snoop` segfaults.

Cheers,
Dick Johnson
**** FILE SYSTEM WAS MODIFIED ****
Penguin : Linux version 2.3.13 on an i686 machine (400.59 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/