python扫描局域网主机和端口
时间: 2023-10-30 14:13:39 浏览: 107
python实现的网络主机扫描系统
您可以使用Python的`socket`库来扫描局域网内的主机和端口。以下是一个示例代码:
``` python
import socket
def scan_local_network(port):
ip_prefix = '.'.join(socket.gethostbyname_ex(socket.gethostname())[2][0].split('.')[0:3]) + '.'
for i in range(1, 255):
ip = ip_prefix + str(i)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(0.1)
result = sock.connect_ex((ip, port))
if result == 0:
try:
hostname = socket.gethostbyaddr(ip)[0]
print(f"{ip} ({hostname}) is up and port {port} is open!")
except socket.herror:
print(f"{ip} is up and port {port} is open!")
sock.close()
if __name__ == '__main__':
scan_local_network(80)
```
该代码会获取本机的IP地址,然后逐个尝试局域网内的IP地址和指定端口是否能够建立连接。如果能够建立连接,则说明该主机的指定端口是开放的。同时,如果能够解析出主机名,则会输出主机名。
阅读全文