使用python扫描端口
2009-9-13
磁针石:xurongzhong#gmail.com
博客:oychw.cublog.cn
本文为学习python的socket时候所写,当然python用来扫描端口的效率并不高,这里仅仅是为了study。
#!/usr/bin/env python
import socket
def check_server(address,port):
s=socket.socket()
try:
s.connect((address,port))
return True
except socket.error,e:
return False
if __name__=='__main__':
from optparse import OptionParser
parser=OptionParser()
parser.add_option("-a","--address",dest="address",default='localhost',help="Address for server",metavar="ADDRESS")
parser.add_option("-s","--start",dest="start_port",type="int",default=1,help="start port",metavar="SPORT")
parser.add_option("-e","--end",dest="end_port",type="int",default=1,help="end port",metavar="EPORT")
(options,args)=parser.parse_args()
print 'options: %s, args: %s' % (options, args)
port=options.start_port
while(port<=options.end_port):
check = check_server(options.address, port)
if (check):
print 'Port %s is on' % port
port=port+1
不过好像没有看到python中有加加运算符号。这里代码在ubuntu 9.04中调试通过。
# ./port_scan.py -h
Usage: port_scan.py [options]
Options:
-h, --help show this help message and exit
-a ADDRESS, --address=ADDRESS
Address for server
-s SPORT, --start=SPORT
start port
-e EPORT, --end=EPORT
end port
# ./port_scan.py -a 192.168.1.1 -s 1 -e 100
options: {'end_port': 100, 'start_port': 1, 'address': '192.168.1.1'}, args: []
Port 21 is on
Port 23 is on
Port 80 is on
阅读(5400) | 评论(0) | 转发(0) |