有很多ip和端口,需要用类似与telnet的方式检测一下端口的连通性

xi4ojie 2013-08-18 09:56:31
import socket
import os

file_obj = open('ip.txt')

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)


for line in file_obj:
ip = line.split()[0]
p = int(line.split()[1])
try:
s.connect((ip,p))
s.close()
print ip+":"+str(p)+" open"
except:
print ip+":"+str(p)+" close"
file_obj.close()


代码如上
运行结果如下:
C:\pycode>python 1111.py
Began to detect...
127.0.0.1:8080 close
127.0.0.1:80 open
127.0.0.1:80 close
127.0.0.1:80 close
192.168.1.1:80 close

同样是127.0.0.1:80 为什么第一个可以之后就不行了呢?
...全文
581 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeky_zhang2013 2013-08-24
  • 打赏
  • 举报
回复
看你在什么下编程,在eclipse下面打断点和其他是一样的。
xi4ojie 2013-08-19
  • 打赏
  • 举报
回复
python有什么比较好的调试工具呢?
panghuhu250 2013-08-18
  • 打赏
  • 举报
回复
s.close()之后,就不能再重复用了。把 s=...放到循环体内。
import socket
import os

file_obj = open('ip.txt')   

for line in file_obj:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	ip = line.split()[0]
	p = int(line.split()[1])
	try:
		s.connect((ip,p))
		s.close()
		print ip+":"+str(p)+" open"
	except:
		print ip+":"+str(p)+" close"
file_obj.close()

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧