用python实现给定目的ip地址,可以扫描目的IP地址在哪个端口上可以接受tcp连接和udp连接,并输出扫描结果。
时间: 2024-02-27 11:57:51 浏览: 133
你可以使用Python的socket库来实现这个功能。下面是一个简单的代码示例,它使用TCP连接扫描目标IP地址的1-1024端口,并输出哪些端口开放了连接。
```python
import socket
target_ip = '192.168.1.1'
timeout = 5
for port in range(1, 1025):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(timeout)
result = s.connect_ex((target_ip, port))
if result == 0:
print(f"Port {port} is open")
s.close()
```
要扫描UDP连接,可以使用socket.SOCK_DGRAM作为socket类型,并使用sendto方法向每个端口发送空数据包,然后等待回应。下面是一个简单的代码示例,它使用UDP连接扫描目标IP地址的1-1024端口,并输出哪些端口开放了连接。
```python
import socket
target_ip = '192.168.1.1'
timeout = 5
for port in range(1, 1025):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(timeout)
try:
s.sendto(b'', (target_ip, port))
data, addr = s.recvfrom(1024)
print(f"Port {port} is open")
except socket.timeout:
pass
s.close()
```
需要注意的是,这种扫描方法可能会被目标IP地址的防火墙或安全策略所阻止,因此在实际使用中需要小心谨慎。
阅读全文