介绍
小编给大家分享一下python检测IP通不通的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家学习,希望大家阅读完这篇文章后大所收获、下面让我们一起去学习方法吧!
<强> python检测服务器是否ping通的2种方法强>
1,第一种比较挫,就是用平,python调用壳,这个适用于较少的服务器数量,几百台已经很慢了(当然是说python同步的方法,要是nodejs异步方式还是很快的,但是nodejs CPU计算不的行,所以尝试了下只能200台左右的服务器可以同时平,再多的话程序也会崩掉)
壳脚本再简单不过了,平。sh如下:
# !/bin/bash 萍=' ping -c 3, 1美元,|,grep & # 39; 0,收到# 39;,|,wc - l ' echo $ PING
其实很简单,平3个包,只要PING通,上述返回的结果就不是0。1美元是传入的第一个参数,即IP。
思路很简单的,从数据库读出IP列表,然后调用上述脚本:
#检查IP能否PING通 # 0:正常,1:ping不通 def check_ip_ping (): 时间=record get_ip(), #从数据库中读取的IP列表 for 小姐:拷贝范围(0,len(记录): 时间=p subprocess.Popen ([" # 39;。/ping.sh& # 39;,记录[我]],stdout=subprocess.PIPE) 时间=result p.stdout.read () Status =0 if result ==& # 39; 1 \ n # 39;: Status =1 # print 我记录[我]& # 39;——ping 失败——& # 39; 其他: ping_ok.append(记录[我]) # print 我记录[我]& # 39;——ping 成功——& # 39; mysql (& # 39; update ip_connect  set 状态=% d where IP=? s" & # 39; %(状态,记录[我]))
2,比这种快很多,适合服务器数量较大时使用,fp命令,它是对一个文件的批量平,瞬间完成的,如果萍不通,那就较慢,日常萍不通的毕竟是少数,所以这个非常适用。来感受一下,它平的结果,新建一个文件iplist,里面是IP列表,fp结果如下:
其实结果就两个活着/unrreachable,其它的中间检测时它自己输出的不用理会。
《外交政策》。承宪:
# !/bin/bash rm -f  result.txt cat ipmi_ping.txt  |, fping 祝辞,result.txt
思路也很简单,将IP列表读取来写进一个iplist文件,然后再对这个文件fp(调用fping.sh)批量执行的结果写进结果文件:
代码如下:
def check_online_ip (): ip =, mysql (& # 39; select *,得到ip_check& # 39;) #将IP写进一个文件 if os.path.exists (& # 39; iplist.txt& # 39;): os.remove (& # 39; iplist.txt& # 39;) iplist=, & # 39; iplist.txt& # 39; for 小姐:拷贝范围(0,len (ip)): with 开放(iplist, & # 39;一个# 39;),as f: f.write (ip[我][0]+ & # 39;\ n # 39;) #对文件中的IP进行fp 时间=p subprocess.Popen (" # 39;。/fping.sh& # 39;, stdout=subprocess.PIPE) p.stdout.read () #读result.txt文件,将IP is 不可到达的行提取更新mysql状态为1 时间=result 开放(& # 39;result.txt& # 39;, & # 39; " # 39;) 时间=content result.read () .split (& # 39; \ n # 39;) for 小姐:拷贝范围(0,len(内容)1): 时间=tmp 内容[我] ip =, tmp [: tmp.index(& # 39;如果# 39;)1] Status =0 if & # 39;遥不可及的# 39;,tmp:拷贝 Status =1 # print 我,ip mysql (& # 39; update ip_check  set 状态=% d where IP=? s" & # 39; %(地位、IP)) print & # 39; check all  ipconnectness ! & # 39;
以上是python检测IP通不通的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!