python写端口扫描器
时间: 2023-05-13 13:00:36 浏览: 120
Python是一种非常流行的编程语言,可以用来编写各种应用程序,包括简单的脚本和复杂的软件。在网络安全领域中,Python也是一种非常有用的语言,可以用来编写各种工具和扫描器。下面是一个使用Python编写的简单端口扫描器的示例程序:
首先需要导入socket模块,然后定义一个名为“portscanner”的函数,该函数将输入一个IP地址和一个端口范围,然后扫描指定的端口号。函数将返回一个包含结果的列表,该结果显示哪些端口是打开的。
在函数中,我们首先创建一个socket对象,然后在指定的端口号上使用socket对象绑定IP地址。接下来,我们试图连接到该端口。如果连接成功了,说明端口是打开的,我们将把该端口号添加到结果列表中。
在主程序中,我们使用input函数提示用户输入IP地址和端口范围。然后我们调用“portscanner”函数并打印扫描结果。
这个例子只是一个简单的端口扫描器,它只能扫描单个IP地址上的指定端口。在实际使用中,您可能需要编写更复杂的程序来扫描多个IP地址和端口范围。此外,还需要进行其他检查以确保扫描是安全的,例如确保您有权限进行扫描,并遵守所有相关法律和法规。
相关问题
用python写一个端口扫描器
我可以给你一个简单的Python端口扫描器代码示例:import socketdef port_scanner(ip, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
con = s.connect((ip,port))
print("Port %d is open" % port)
con.close()
except:
print("Port %d is closed" % port)ip = input("Please enter the IP you want to scan: ")for port in range (1,100):
port_scanner(ip,port)
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实现的简单端口扫描器的介绍和代码示例。通过这个扫描器,你可以快速检测目标主机上的开放端口,以帮助提高网络安全性。记得在使用端口扫描器时要遵守合法和道德的原则。