第一天接触socket模块,写个单线程端口扫描器
from socket import *
def portScan(ip,port):
try:
s=socket(AF_INET,SOCK_STREAM)
result=s.connect_ex((ip,port))
if result==0:
print("%d is open"%port)
else:
print("%d is close"%port)
except:
print("error")
def main():
setdefaulttimeout(1)
for p in range(1,65535):
portScan("127.0.0.1",p)
if __name__=='__main__':
main()
try:
s=socket(AF_INET,SOCK_STREAM)
result=s.connect_ex((ip,port))
if result==0:
print("%d is open"%port)
else:
print("%d is close"%port)
except:
print("error")
def main():
setdefaulttimeout(1)
for p in range(1,65535):
portScan("127.0.0.1",p)
if __name__=='__main__':
main()
龟速扫描。。。等后面学了多线程再改进一下
改进:
from socket import * import threading import time def portScan(ip,port,delay): s = socket(AF_INET, SOCK_STREAM) s.settimeout(delay) try: result=s.connect_ex((ip,port)) if result==0: print("[+]%d is open"%port) #else: #print("[-]%d is close"%port) s.close() except: print("error") def main(): setdefaulttimeout(1) for p in range(1,65535): thread = threading.Thread(target=portScan, args=("127.0.0.1", p , 0.01)) thread.start() time.sleep(0.006) thread.join() if __name__=='__main__': main()