怎么使用Python测试平主机IP和某端口是否开放

  介绍

这篇文章主要介绍怎么使用Python测试平主机IP和某端口是否开放,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Python是什么意思

Python是一种跨平台的,具有解释性,编译性,互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

<强>使用Python方法

比用各种命令方便,可以设置超时时间,到底通不通,端口是否开放一眼能看出来。

<>强命令和返回

完整权限,可以Ping通,端口开放,结果如下:

怎么使用Python测试平主机IP和某端口是否开放

无根权限(省略了萍),端口开放,结果如下:

怎么使用Python测试平主机IP和某端口是否开放

完整权限,可以Ping通,远端端口关闭,结果如下:

怎么使用Python测试平主机IP和某端口是否开放

完整权限,可以Ping通,本地端口关闭,结果如下:

怎么使用Python测试平主机IP和某端口是否开放

完整权限,不能Ping通(端口自然也无法访问),结果如下:

怎么使用Python测试平主机IP和某端口是否开放

pnp型。py代码

# !/usr/bin/python   # name  pnp.py   # ping 以及港口   utf - 8编码:      import 操作系统,系统,套接字,,结构、选择,,时间   ICMP_ECHO_REQUEST =, 8, #, Seems 用be 从而same 提醒Solaris。   socket.setdefaulttimeout (4)      # first 参数   主机=sys.argv [1]      # second 参数   端口=int (sys.argv [2])      # socket  try 连接      def  PortOpen (ip、端口):   ,print(& # 39; 033年\[1 033 *端口\ [0 m  % s: % d # 39;, % (ip、端口),   ,s=socket.socket (socket.AF_INET socket.SOCK_STREAM)      ,试一试:   s.connect才能((ip、端口))   s.shutdown才能(2)   ,,print(& # 39; 033年\ [1;32 m ...., is  033年好。\[0猴# 39;,),   return 才能正确      ,except  socket.timeout:   ,,print(& # 39; 033年\ [1;33 m ...., is  down 或是network  time  ! ! ! 033 \[0猴# 39;,),   return 才能;错误的   ,,   ,除了:      ,,print(& # 39; 033年\ [1;31 m ...., is 下来! ! ! 033 \[0猴# 39;,),   return 才能;错误的      def 校验和(source_string):   ,“““   ,我# 39;m  not  too  confident  that 却;能够is  right  but  testing 似乎   ,用suggest  that  it  gives 从而same  answers  as  in_cksum  ping.c拷贝   ,“““   sum =, 0=,countTo  (len (source_string)/2) * 2   count =, 0   ,while  count< countTo:=,,thisVal 奥德(source_string [count  +, 1]) * 256, +,奥德(source_string[数])=,,sum  sum  + thisVal=,,sum  sum ,, 0 xffffffff  #,有必要吗?=,,count  count  +, 2   ,if  countTo< len (source_string):=,,sum  sum  +,奥德(source_string (len (source_string),安康;1])=,,sum  sum ,, 0 xffffffff  #,有必要吗?=,sum  (sum 在祝辞,16),+,(sum ,, 0 xffff)=,,sum  sum  +, (sum 在祝辞,16)   ,answer =~总和=,,answer  answer , 0 xffff   ,# Swap 字节只Bugger  me  if 小姐:知道为什么。=,,answer  answer 在祝辞,8,|,(answer  & lt; & lt;, 8,,, 0 xff00)   return 回答   def  receive_one_ping (my_socket、, ID,超时):   ,“““   ,receive 从而,ping 得到,插座。   ,“““   timeLeft =,超时   ,while 真正的:=,,startedSelect  time.time ()=,,whatReady  select.select ([], [my_socket], [],, timeLeft)   ,howLongInSelect =, (time.time(),安康;startedSelect)   ,if  whatReady[0],==,[]: #,超时   ,返回=,,timeReceived  time.time ()   ,recPacket, addr =, my_socket.recvfrom (1024)=,,icmpHeader  recPacket [20:28]   ,类型代码,,校验和,,,,packetID sequence =, struct.unpack (   “bbHHh",才能icmpHeader   ,)   ,if  packetID ==, ID:   时间=bytesInDouble 才能;struct.calcsize (“d")   timeSent 才能=,struct.unpack (“d",, recPacket [+ 28:28  bytesInDouble]) [0]   return 才能;timeReceived 安康;timeSent=,,timeLeft  timeLeft 作用;howLongInSelect   ,if  timeLeft  & lt;=, 0:   ,返回   def  send_one_ping (my_socket, dest_addr,, ID):   ,“““   ,Send  one  ping 用,given 祝辞dest_addr<?   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么使用Python测试平主机IP和某端口是否开放