python脚本探测存活主机
时间: 2023-10-20 10:05:52 浏览: 47
你可以使用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地址范围或检查其他端口。
相关问题
帮我输出一段扫描网络中存活主机的python脚本
好的,以下是一个简单的扫描网络中存活主机的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内网存活主机以及存活端口的扫描脚本
好的,以下是一段简单的 Python 代码来扫描内网中的存活主机和开放的端口。需要注意的是,这个程序需要在具有管理员权限的系统上运行,因为它需要发送 ICMP Echo 请求和 TCP SYN 请求。
``` python
import socket
import struct
import subprocess
import sys
def ping(ip):
# 发送 ICMP Echo 请求
ping_process = subprocess.Popen(
['ping', '-n', '1', '-w', '1000', ip],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
# 等待进程结束,获取返回结果
out, error = ping_process.communicate()
if 'TTL=' in out.decode('utf-8'):
return True
else:
return False
def scan(ip, port):
# 创建套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
try:
# 发送 TCP SYN 请求
sock.connect((ip, port))
sock.close()
return True
except socket.error:
return False
def main():
# 获取本机 IP 地址
local_ip = socket.gethostbyname(socket.gethostname())
# 扫描内网 IP 地址
for i in range(1, 256):
ip = '{0}.{1}.{2}.{3}'.format(
local_ip.split('.')[0],
local_ip.split('.')[1],
local_ip.split('.')[2],
i
)
# 如果 IP 地址存活则扫描端口
if ping(ip):
for port in range(1, 1025):
if scan(ip, port):
print('{0}:{1} is open'.format(ip, port))
if __name__ == '__main__':
main()
```
这个脚本将扫描本地内网中的 IP 地址和端口,输出存活的主机和开放的端口。你可以根据需要更改代码来定制扫描规则和输出格式。