使用Python方法
比用各种命令方便,可以设置超时时间,到底通不通,端口是否开放一眼能看出来。
命令和返回
完整权限,可以ping通,端口开放,结果如下:
无root权限(省略了ping),端口开放,结果如下:
完整权限,可以ping通,远端端口关闭,结果如下:
完整权限,可以ping通,本地端口关闭,结果如下:
完整权限,不能ping通(端口自然也无法访问),结果如下:
pnp.py代码
#!/usr/bin/python
#name pnp.py
#ping and port
#coding:utf-8
import os, sys, socket, struct, select, time
ICMP_ECHO_REQUEST = 8 # Seems to be the same on Solaris.
socket.setdefaulttimeout(4)
#first argument
host=sys.argv[1]
#second argument
port=int(sys.argv[2])
#socket try connect
def PortOpen(ip,port):
print( " 33[1m*Port 33[0m %s:%d" %(ip,port)),
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((ip,port))
s.shutdown(2)
print( " 33[1;32m.... is OK. 33[0m" )
return True
except socket.timeout:
print( " 33[1;33m.... is down or network time out!!! 33[0m" )
return False
except:
print( " 33[1;31m.... is down!!! 33[0m" )
retu