python检测Ip可用/python批量检测Ip是否可用并打印结果/使用request访问网页

这是一篇批量检测ip方法的文章记录,主要介绍了如何使用python来简单快速的输出批量telnet检测ip是否正常结果

检测ip是否正常是一个常见的需要,刚好我在做浏览器自动代理遇到需要检测ip是否可用的场景,见我的这篇文章chrome使用代理,浏览器PAC自动配置代理Javascript脚本介绍及使用/PAC文件
这里来写一下记录解决过程

检测ip方法

ping检测ip

ping是常用来检测ip是否可通的一个命令,使用格式是 ping ip

telnet检测ip端口

telnet如果命令执行成功也可以认为ip是可用的,使用格式是telnet [ip port]

批量检测ip

ping和telnet都只能一次检测一个ip是否可用,刚好我手里有几十个做浏览器代理的ip,一个个来检测太麻烦了,我用Python来实现一个批量检测ip脚本,脚本的功能就是把telnet成功运行成功的ip输出结果出来就行了,说干就干
代码也很简单,三个环节遍历、检测、打印结果,如下是代码:

'''
python版批量检测ip是否可用
'''
#!/usr/bin/env python
#-*-coding:utf-8-*-
import re
import subprocess
from io import StringIO
import multiprocessing
import time
import sys
import telnetlib
#telnet检测直接打印结果
def telnet(host, port):
    """
    测试端口号通不通
    :return:
    """
    try:
    	#  timeout单位s
        telnetlib.Telnet(host=host, port=port, timeout=2)
        print(f"{host}:{port}  端口开放")
    except:
        print(f"{host}:{port}  端口未开放")
        # 或什么都不打印
        # pass
#ping检测将结果存储在文件
def check_alive(ip):
    result = subprocess.call('ping -w 1000 -n 1 %s' %ip,stdout=subprocess.PIPE,shell=True)
    if result == 0:
        h = subprocess.getoutput('ping ' + ip)
        returnnum = h.split('平均 = ')[1]
        info = ('\033[32m%s\033[0m 能ping通,延迟平均值为:%s' %(ip,returnnum))
        print(info)
        #return info
    else:
        with open('failping.txt','a') as f:
            f.write(ip)
        info = ('\033[31m%s\033[0m ping 不通!' % ip)
        #return info
        print(info)

if __name__ == '__main__':
    print("开始批量ping所有IP!")
    #读取文件
    #with open('ip.txt', 'r') as f:      #ip.txt为本地文件记录所有需要检测连通性的ip
    f=["127.0.0.1",
    "127.0.0.1"
    "127.0.0.1"
    "127.0.0.1"
    "127.0.0.1"
    "127.0.0.1"
    "127.0.0.1"]
    for str in f:
        item=str.split(':');
        i=item[0]
        port=8080
        if len(item)>1:
            port=item[1]
        p = multiprocessing.Process(target=telnet, args=(i,port))
        p.start()

request模块检测ip

用request模块检测ip也可以,但要有运行环境,代码如下:

'''
python版检测代理ip是否可以访问网站
'''
# python 3.6+
#!/usr/bin/env python
#-*-coding:utf-8-*-
import requests

url = "http://www.baidu.com/"
ip, port = "127.0.0.1", "8080"
proxies = {"http": f"http://{ip}:{port}"}
#空白位置为测试代理ip和代理ip使用端口

headers = {"User-Agent": "Mozilla/5.0"}
#响应头
res = requests.get(url, proxies=proxies, headers=headers)
#发起请求
print(ip+port+"="+res.status_code) #返回响应码

Python中运行No module named ‘requests‘问题怎么办

通过pip安装python模块requests下载和安装

总结

python检测ip整个过程简单,如果已安装python的直接运行就完事了,不然就要装一下python环境

以下是python检测思路图

Created with Raphaël 2.3.0 开始 运行python 是否有python 输出结果 是否输出文件 输出文件 打印结果 输出控制台 安装python包 yes no yes no
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员斯文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值