- 论坛徽章:
- 0
|
我想写一个IP扫描器。代码如下
#/usr/bin/env python
# -*- coding: utf-8 -*-
import threading,httplib,time,sys
class Mythread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self,host=sys.argv[1]):
self.host = host
ports = [80,443,4848,8080,8090,8000,8082,8888,9043,7001,7002,7003,7080,8443,9060,9440,9090,8081,9043,9080,81,18100,9956]
for port in ports:
conn = httplib.HTTPConnection(self.host,port,True,6)
i_headers = {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5","Accept": "text/plain"}
conn.request('GET','/',headers = i_headers)
r1 = conn.getresponse()
print r1.status
conn.close()
if __name__ == '__main__':
#global host
Mythread().start()
但是一运行。
貌似只访问了一个端口。
我的想法是:一次访问每个端口 打印出http状态响应码。
错误如下:
D:\script>python dump.py 220.181.111.147
200
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 551, in __bootstrap_inner
self.run()
File "dump.py", line 13, in run
conn.request('GET','/',headers = i_headers)
File "C:\Python27\lib\httplib.py", line 958, in request
self._send_request(method, url, body, headers)
File "C:\Python27\lib\httplib.py", line 992, in _send_request
self.endheaders(body)
File "C:\Python27\lib\httplib.py", line 954, in endheaders
self._send_output(message_body)
File "C:\Python27\lib\httplib.py", line 814, in _send_output
self.send(msg)
File "C:\Python27\lib\httplib.py", line 776, in send
self.connect()
File "C:\Python27\lib\httplib.py", line 757, in connect
self.timeout, self.source_address)
File "C:\Python27\lib\socket.py", line 571, in create_connection
raise err
timeout: timed out
不知道怎么回事了。如果有知道的 还请帮忙解决下 谢谢了 |
|