I'm current working on a program that scans my network and discoveres computers and devices on the network. I use various operations to find data on the devices I discover, but want to distinguish the network devices from computers. And I'm wondering if anyone knows how I could do this?
I looked a bit at SNMP, and tried connecting to my network printer, router and modem. But I seem to only be able to connect to the printer, neither the router or modem responds.
Is there another way to identify what kind of a device an IP address belongs to?
Using a command line tool such as nmap you can finger print the device which can give you all sorts of information.
Perhaps you can call nmap via c# and read back the response.
Another alternative is to look up the network chip vendor of a given MAC address. But I'm not sure how much detail that will give you.
Here is the example from the nmap site:
# nmap -O -v scanme.nmap.org
Starting Nmap ( http://nmap.org )
Nmap scan report for scanme.nmap.org (64.13.134.52)
Not shown: 994 filtered ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp closed smtp
53/tcp open domain
70/tcp closed gopher
80/tcp open http
113/tcp closed auth
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.20-1 (Fedora Core 5)
Uptime guess: 11.433 days (since Thu Sep 18 13:13:01 2008)
TCP Sequence Prediction: Difficulty=204 (Good luck!)
IP ID Sequence Generation: All zeros
Nmap done: 1 IP address (1 host up) scanned in 6.21 seconds
Raw packets sent: 2021 (90.526KB) | Rcvd: 23 (1326B)
First, this answer is biased on ethernet networks. The ideas can be tips also for other scenarios.
There is many ways to accomplish this, for example :
scanning
Possible, for example, with nmap.
Pro :
Cons:
targeted discovery
If your goal is to map your network, the official services, you can think about their official discovery capabilites. For example CDP, SSDP, srvloc, snmp get broadcast, etc... You have to know what services you are probing.
Pro:
Cons:
passive traffic monitoring
Once upon a time, you find ethernet hosts linked with copper cables ( CAT3 / CAT5 ) to hubs. You can run on any of these hosts a program to capture all the traffic, putting the ethernet card in promiscous mode, so the NIC pass to the operating system all the packets, also the packets with a MAC destination different than the MAC address of the NIC.
Your program can analyze these raw data, and parse the protocols and packets inside.
Nowadays you use ethernet switches, not hubs. Your pc' NIC in promiscous mode doesn't receive all the traffic on the network, because the switch forwards to you only the packets for your host or for all ( broadcast and - if registered - multicast ).
You have to use managed switches, and configured one port to be a repeater or monitor port, to link the monitoring host.
Pro:
Cons:
This is a simple discovery for dummies intro. Discovery tools can mix both ways to look for devices and services on the network.
For example, HP JetAdmin discovery uses different methods only to look for HP network printers and scanners not for all the devices on your LAN.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With