识别非计算机网络设备?

时间:2011-06-23 13:44:16

标签: networking snmp packet-sniffers discovery raw-ethernet

我目前正在开发一个程序来扫描我的网络并发现网络上的计算机和设备。我使用各种操作在我发现的设备上查找数据,但希望区分网络设备和计算机。而且我想知道是否有人知道我该怎么做?

我看了一下SNMP,尝试连接到我的网络打印机,路由器和调制解调器。但我似乎只能连接到打印机,路由器或调制解调器都没有响应。

是否有其他方法可以识别IP地址属于哪种设备?

3 个答案:

答案 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。

亲:

  1. 可以发现未知设备和服务。由懒惰的系统管理员忘记或由不信任的用户安装
  2. 可以成为发现服务和安全审核的有用工具。
  3. 对于新手来说,这听起来是最好的方式:从头开始,找到所有。坏消息:阅读缺点。
  4. 缺点:

    1. 这是非常低效的。如果你从头开始 - 你对局域网一无所知 - 你想找到所有可能的服务,你必须为每个可能的主机扫描几乎所有的tcp和udp端口。
    2. 结果不是100%实惠:hw或sw防火墙;等等......下一次运行可能导致完全不同的结果。
    3. 结果不是简单的i_got_it / null,而是模糊:您需要专家来评估结果。
    4. 有时您的电脑上必须有管理员帐户才能运行此扫描。
    5. 有些IDS可以将此活动记录为错误。
    6. 有针对性的发现

      如果您的目标是映射您的网络,官方服务,您可以考虑他们的官方发现功能。例如CDP,SSDP,srvloc,snmp get broadcast等... 您必须知道您正在探究哪些服务。

      临:

      1. 这是最有效的方式,包括最高速度和最小网络带宽。
      2. 结果是可靠的:下次运行必须返回相同的结果(显然,如果服务和网络保持活动状态)。
      3. 这是检查服务可用性的方法,并说明了SLA。
      4. 您不需要专家:例如:如果设备回答snmp获取SysDescr,您就知道您的数据了。你得到了确切的答案,或者你错过了。
      5. 缺点:

        1. 您必须知道您正在探究哪些服务。
        2. 您不能使用它来确保找到设备/服务。这既不是安全审计也不是发现工具。例如:我将我的http服务器监听端口更改为81,您如何找到我?
        3. 被动流量监控

          曾几何时,您会发现以太网主机与铜缆(CAT3 / CAT5)连接到集线器。 您可以在任何这些主机上运行一个程序来捕获所有流量,将以太网卡置于promiscous模式,这样NIC就会将所有数据包传递给操作系统,也就是MAC目的地不同于MAC地址的数据包。 NIC。

          您的程序可以分析这些原始数据,并解析内部的协议和数据包。

          现在您使用以太网交换机,而不是集线器。你的电脑&#39;处于promiscous模式的NIC不会接收网络上的所有流量,因为交换机仅向您转发主机或所有数据包(广播和 - 如果已注册 - 多播)。

          您必须使用托管交换机,并将一个端口配置为转发器或监控端口,以链接监控主机。

          临:

          1. 这是被动监控 - 如果做得对。这对于特定评估非常有用,您无法在被测网络上发送任何数据包,并且您尊重强SLA。
          2. 要收集nw流量,您无需了解协议和服务配置。例如,您可以从主机中删除tcp / ip堆栈,保留以太网卡的驱动程序,并收集流量。
          3. 使用带有监控端口的托管交换机,您不必将NIC置于promiscous模式/调整tcp / ip堆栈。
          4. libpcap / winpcap是捕获数据包的事实上的标准,它可以工作。在开发自己的应用程序之前,您可以使用一些GUI前端,比如Analyzer或Wireshark。
          5. 它也是发现服务和安全审计的有用工具。
          6. 缺点:

            1. 您是否必须确保不在被测网络上发送数据包?如果您有集线器,请使用带有转发器端口的托管交换机。转发器端口只能接收网络流量。
            2. 要捕获高吞吐量的数据,例如1 Gbit,您必须调整操作系统配置,否则cpus会升级到满负载并且您仍然会丢失数据包。忘了这个东西的ms窗口。
            3. 显然,你只看到实时流量,没有关于服务不传输的信息。
            4. 请参阅扫描的缺点3,4。这是接近观察电线上的位,就像电子工程师的示波器。您捕获所有数据,稍后您需要专家^ 2来评估它们。是的,稍后,因为详细分析错误和故障是非常耗时的。
            5. 这是一个简单的发现傻瓜简介。发现工具可以混合使用两种方式来查找网络上的设备和服务。

              例如,HP JetAdmin发现使用不同的方法仅查找HP网络打印机和扫描仪,而不是LAN上的所有设备。

答案 2 :(得分:0)

通常,您无法从IP中找到有关设备的更多信息。使用主机的MAC地址,您可以确定网络适配器的制造商。 MAC地址的前半部分由制造商分配。

您可以尝试使用nmap

Nmap(“Network Mapper”)是一个免费的开源实用程序,用于网络探索或安全审核。它旨在快速扫描大型网络,虽然它可以很好地对抗单个主机。 Nmap以新颖的方式使用原始IP数据包来确定网络上可用的主机,这些主机提供的服务(应用程序名称和版本),运行的操作系统(和操作系统版本),数据包过滤器/防火墙的类型正在使用中,还有许多其他特性。 Nmap可在大多数类型的计算机上运行,​​并且可以使用控制台和图形版本。 Nmap是免费软件,根据GNU GPL条款提供完整源代码。