来段python的
#!/usr/bin/python
import socket
import sys
HOST = "192.168.0.1"
PORT = 1
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
flag = False
while (PORT < 50):
try:
s.connect((HOST,PORT))
print \'port:\', PORT, \':success connect!\'
s.close()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
PORT = PORT + 1
flag = True
continue
except socket.error, msg:
print PORT
PORT = PORT + 1
if(flag):
print \'find connected port\'
else:
print \'can not find connect port\'
python是一个功能强大的脚本语言,结构化都好,写出的代码很清晰,但是感觉不足的是控件块的范围要靠代码“对齐”来实现。
下面代码可以扫描一个段的IP地址和端口
import socket
import sys
import string
HOST1 = '192.168.0.'
HOST2 = 1
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
flag = False
while (HOST2 < 255):
HOST = HOST1 + str(HOST2)
print HOST
PORT = 1
while (PORT < 65535):
try:
s.connect((HOST,PORT))
print ' port:', PORT, ':success connect!'
s.close()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
PORT = PORT + 1
flag = True
continue
except socket.timeout:
print 'timeout'
break;
except socket.error, msg:
if(int(msg[0]) == 10060):
break
print PORT
PORT = PORT + 1
print ' port:', PORT, ':', msg
HOST2 = HOST2 + 1
if(flag):
print 'find connected port'
else:
print 'can not find connect port'