帮我输出一段扫描网络中存活主机的python脚本
时间: 2023-12-10 20:39:32 浏览: 23
好的,以下是一个简单的扫描网络中存活主机的Python脚本:
```python
import os
# 获取本机IP地址
ip_address = os.popen('hostname -I').read().split()[0]
# 分割IP地址
ip_parts = ip_address.split('.')
subnet = ip_parts[0] + '.' + ip_parts[1] + '.' + ip_parts[2] + '.'
# 遍历整个子网
for i in range(1, 255):
address = subnet + str(i)
response = os.system("ping -c 1 " + address)
if response == 0:
print(address, 'is up!')
```
这个脚本使用`os`模块来执行系统命令(`ping`)并检查响应以确定主机是否存活。它获取本机IP地址,将其分解为子网和主机部分,然后遍历整个子网以检查每个主机是否存活。如果主机存活,则输出其地址。
相关问题
帮我写个内网存活主机扫描脚本
好的,以下是一个简单的 Python 脚本,可以扫描指定 IP 段内的存活主机:
```python
import os
def ping(host):
response = os.system("ping -n 1 " + host)
return response == 0
def scan_network(start_ip, end_ip):
for i in range(start_ip, end_ip+1):
host = "192.168.1." + str(i)
if ping(host):
print(host + " is alive")
scan_network(1, 254)
```
这个脚本会扫描 192.168.1.1 到 192.168.1.254 这个 IP 段内的主机,如果主机存活,则会输出主机的 IP 地址。
python脚本探测存活主机
你可以使用Python的socket库来探测存活主机。下面是一个简单的示例脚本:
```python
import socket
for i in range(1, 255):
ip = '192.168.0.' + str(i)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(0.1)
result = sock.connect_ex((ip, 80))
if result == 0:
print(ip + ': is up')
sock.close()
```
该脚本将扫描子网 192.168.0.0/24 中的所有IP地址,并尝试连接到端口80。如果连接成功,则说明主机是存活的。你可以根据需要修改脚本,例如更改IP地址范围或检查其他端口。