python 端口扫描器
时间: 2023-06-29 12:19:38 浏览: 144
以下是一个基本的 Python 端口扫描器示例代码,它使用 socket 模块来实现:
```python
import socket
# 定义要扫描的目标IP地址和端口范围
target_ip = "127.0.0.1"
start_port = 1
end_port = 1024
# 创建一个socket对象
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 遍历端口范围,对每个端口进行扫描
for port in range(start_port, end_port+1):
try:
# 尝试连接目标主机的指定端口
result = sock.connect_ex((target_ip, port))
if result == 0:
print(f"端口 {port} 开放")
except:
pass
sock.close()
```
运行代码后,程序会遍历指定端口范围内的所有端口,并尝试连接目标主机的每个端口。如果连接成功,就说明该端口是开放的。程序最终会输出所有开放的端口号。
需要注意的是,这个示例代码只能扫描指定范围内的端口,并且扫描速度较慢。在实际使用中,需要根据具体情况选择更加适合的工具和方法,例如使用多线程或异步IO来提高扫描速度。同时,还需要注意不要违反网络安全规定,例如进行未经授权的端口扫描可能会触犯法律。
相关问题
python写端口扫描器
好的,以下是一个简单的 Python 端口扫描器的代码示例:
```python
import socket
target_host = input("Enter the target host IP address: ")
start_port = int(input("Enter the starting port number: "))
end_port = int(input("Enter the ending port number: "))
for port in range(start_port, end_port+1):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target_host, port))
if result == 0:
print("Port {}: Open".format(port))
sock.close()
except KeyboardInterrupt:
print("Program interrupted by user.")
sys.exit()
except socket.gaierror:
print("Hostname could not be resolved.")
sys.exit()
except socket.error:
print("Could not connect to server.")
sys.exit()
```
该代码使用 socket 模块创建一个 TCP 套接字并连接到指定的目标主机和端口。如果连接成功,则表示该端口处于打开状态,输出“Port [port]: Open”。如果连接失败,则表示该端口处于关闭状态。
Python实现端口扫描
Python可以使用socket模块实现端口扫描。通过建立TCP连接并向端口发送数据,可以判断端口是否开放。以下是一个简单的Python端口扫描器的代码示例:
```
from socket import *
def connScan(tgtHost,tgtPort):
try:
connSkt=socket(AF_INET,SOCK_STREAM) #建立TCP连接
connSkt.connect((tgtHost,tgtPort)) #若无连接,则会出错,进入except
connSkt.send('ViolentPython\r\n'.encode()) #像端口发送数据
results=connSkt.recv(100) #若端口开放,记录返回的消息
print('[+]%d/tcp open' %tgtPort)
print('[+] '+str(results))
connSkt.close()
except:
print('[-]%d/tcp closed' %tgtPort)
def portScan(tgtHost,tgtPorts):
try:
tgtIP=gethostbyname(tgtHost)
except:
print('[-] Cannot resolve %s : Unknown host'%tgtHost)
return
try:
tgtName=gethostbyaddr(tgtIP)
print('\n[+] Scan Results for:'+tgtName[0])
except:
print('\n[+] Scan Results for:' + tgtIP)
setdefaulttimeout(1)
for tgtPort in tgtPorts:
print('Scanning port '+tgtPort)
connScan(tgtHost,int(tgtPort))
if __name__ == '__main__':
tgtHost='192.168.0.13' #目标主机ip
tgtPorts=['20','21','22','80'] #要扫描的端口
portScan(tgtHost,tgtPorts)
```
以上就是使用Python实现的简单端口扫描器的介绍和代码示例。通过这个扫描器,你可以快速检测目标主机上的开放端口,以帮助提高网络安全性。记得在使用端口扫描器时要遵守合法和道德的原则。
阅读全文