📜  循环打印 LAN 中的所有设备 (1)

📅  最后修改于: 2023-12-03 15:25:37.145000             🧑  作者: Mango

循环打印 LAN 中的所有设备

如果你正在寻找一种方法来扫描局域网中的所有设备,那么你来对地方了。在这篇文章中,我们将提供一些常用的方法和代码片段,让你可以轻松地循环打印 LAN 中的所有设备。请注意,这只适用于局域网内的设备,不适用于跨网段或互联网上的设备。

使用 Python 进行循环打印

Python 是一门强大的编程语言,并且它有许多可用于扫描局域网的模块。下面是一个使用 Python 进行循环打印 LAN 中的所有设备的例子:

import socket


def get_local_ip():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(("8.8.8.8", 80))
    ip_address = s.getsockname()[0]
    s.close()
    return ip_address


def scan_network():
    subnet = '.'.join(get_local_ip().split('.')[:-1])
    for i in range(1, 255):
        ip = subnet + '.' + str(i)
        try:
            name = socket.gethostbyaddr(ip)
            print(f"Device found at {ip} with name {name[0]}")
        except socket.herror:
            continue
            

这是一个使用了 socket 模块的 Python 代码片段,它使用 get_local_ip() 函数获取当前主机的 IP 地址,并使用 scan_network() 函数循环扫描局域网中的所有设备。在扫描过程中,它会尝试通过 IP 地址获取对应设备的主机名,如果获取失败则忽略该设备。

使用 nmap 进行扫描

nmap 是一个功能强大的网络扫描工具,它可以用于扫描 IP 地址和端口等。可以通过以下命令来安装:

# Ubuntu / Debian
sudo apt-get install nmap

# CentOS
sudo yum install nmap

一旦安装完成,你可以使用以下命令来扫描局域网中的所有设备:

nmap -sP 192.168.1.0/24

这将扫描以 192.168.1. 开头的 IP 地址,并打印出所有可达的设备的 IP 地址。-sP 参数指示 nmap 只进行 Ping 扫描,而不对设备进行其他类型的扫描。

小结

以上是两种常用的方法,可以用于循环打印 LAN 中的所有设备。无论你使用哪种方法,你都可以轻松地找到局域网中的所有设备,并打印它们的 IP 地址和主机名。