发新话题
打印

来段python的

来段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'
发新话题