我目前正在开发一个程序来扫描我的网络并发现网络上的计算机和设备。我使用各种操作在我发现的设备上查找数据,但希望区分网络设备和计算机。而且我想知道是否有人知道我该怎么做?
我看了一下SNMP,尝试连接到我的网络打印机,路由器和调制解调器。但我似乎只能连接到打印机,路由器或调制解调器都没有响应。
是否有其他方法可以识别IP地址属于哪种设备?
答案 0 :(得分:9)
使用nmap等命令行工具,您可以手指打印可以为您提供各种信息的设备。
也许您可以通过c#调用nmap并回读响应。
另一种方法是查找给定MAC地址的网络芯片供应商。但我不确定会给你多少细节。
以下是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)
答案 1 :(得分:8)
首先,这个答案偏向于以太网网络。 这些想法也可以作为其他场景的提示。
有很多方法可以实现这一目标,例如:
<强>扫描强>
例如,可以使用nmap。
亲:
缺点:
有针对性的发现
如果您的目标是映射您的网络,官方服务,您可以考虑他们的官方发现功能。例如CDP,SSDP,srvloc,snmp get broadcast等... 您必须知道您正在探究哪些服务。
临:
缺点:
被动流量监控
曾几何时,您会发现以太网主机与铜缆(CAT3 / CAT5)连接到集线器。 您可以在任何这些主机上运行一个程序来捕获所有流量,将以太网卡置于promiscous模式,这样NIC就会将所有数据包传递给操作系统,也就是MAC目的地不同于MAC地址的数据包。 NIC。
您的程序可以分析这些原始数据,并解析内部的协议和数据包。
现在您使用以太网交换机,而不是集线器。你的电脑&#39;处于promiscous模式的NIC不会接收网络上的所有流量,因为交换机仅向您转发主机或所有数据包(广播和 - 如果已注册 - 多播)。
您必须使用托管交换机,并将一个端口配置为转发器或监控端口,以链接监控主机。
临:
缺点:
这是一个简单的发现傻瓜简介。发现工具可以混合使用两种方式来查找网络上的设备和服务。
例如,HP JetAdmin发现使用不同的方法仅查找HP网络打印机和扫描仪,而不是LAN上的所有设备。
答案 2 :(得分:0)
通常,您无法从IP中找到有关设备的更多信息。使用主机的MAC地址,您可以确定网络适配器的制造商。 MAC地址的前半部分由制造商分配。
您可以尝试使用nmap。
Nmap(“Network Mapper”)是一个免费的开源实用程序,用于网络探索或安全审核。它旨在快速扫描大型网络,虽然它可以很好地对抗单个主机。 Nmap以新颖的方式使用原始IP数据包来确定网络上可用的主机,这些主机提供的服务(应用程序名称和版本),运行的操作系统(和操作系统版本),数据包过滤器/防火墙的类型正在使用中,还有许多其他特性。 Nmap可在大多数类型的计算机上运行,并且可以使用控制台和图形版本。 Nmap是免费软件,根据GNU GPL条款提供完整源代码。