获取中国某省份的ip地址,随机IP

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 该代码使用Python爬取福建省的IP段数据,通过requests和lxml库获取网页内容并解析,提取省、市、区及IP段信息,保存到Pandas DataFrame中。接着根据IP段随机生成IP地址,并将结果写入Excel文件。
import requests
from lxml import etree
import pandas as pd
import random

# 福建省ip段的url地址
url = "http://ip.khcha.com/ipsection_view.aspx?fl=2&type=S_FJ"

page_text = requests.get(url=url)

html = etree.HTML(page_text.text)

# 获取第一层的地区列表url
ul_ui_list = html.xpath('//*[@class="navr"]/ul/li')

# 创建一个空的列表
data_lst = []

# 构造下一级的url-- 省市级
for i in ul_ui_list:
    if len(i.xpath('.//@href')) > 0:
        new_url = "http://ip.khcha.com/" + i.xpath('.//@href')[0]  # 组合下一级的url
        page_text_next =  requests.get(url=new_url)
        html_next = etree.HTML(page_text_next.text)  # 获取网页数据

        ul_ui_list_next = html_next.xpath('//*[@class="navr"]/ul/li')

        # 构造市区级url
        for i_next in ul_ui_list_next:
            if len(i_next.xpath('.//@href')) > 0:
                new_url_next = "http://ip.khcha.com/" +  i_next.xpath('.//@href')[0]

                html_next_next = etree.HTML(requests.get(url=new_url_next).text)

                data_list = html_next_next.xpath('//*[@class="mainright"]/ul/li')

                for data in data_list:
                    parse_list = new_url_next.split('&')
                    province = '福建省'
                    city = parse_list[1].split('=')[1]
                    area = parse_list[2].split('=')[1]
                    l_ip = data.xpath('.//span[@class = "l"]/text()')[0]
                    r_ip = data.xpath('.//span[@class = "r"]/text()')[0]
                    lst = [province, city, area, l_ip, r_ip]
                    data_lst.append(lst)

            else:
                continue

    else:
        continue



# 根据IP段随机生成ip
# 根据起始ip,确定该段中的ip数量
columns = ['province','city','area','start_ip','end_ip']
df = pd.DataFrame(data_lst,columns=columns)

# 定义一个空的DataFrame,用来存放生成的新的数据
columns_new = ["province","city","area","ip"]
data_frame = pd.DataFrame(columns=columns_new)

# 遍历DataFrame,生成随机ip段
print(len(df))
print("++++++++++++++++++++++++++++++++++++++")
for index,rows in df.iterrows():
    start_ip = rows['start_ip']
    end_ip = rows['end_ip']
    # 通过观察,发现ip前两个号段是一致的
    # 随机IP的前缀
    pre_ip = '.'.join(start_ip.split('.')[0:2]) + '.'   # 122.9.
    # 计算该组区间之间的ip数量
    ip_num = (int(end_ip.split('.')[2]) - int(start_ip.split('.')[2]) + 1) * (int(end_ip.split('.')[3]) - int(start_ip.split('.')[3]) + 1)

    print(ip_num)
    print("**********************************")
    # 每个区段选择总数的1/10 整个福建省大约60万+
    for i in range(ip_num // 10):
        random_ip_3 = random.randint(int(start_ip.split('.')[2]), int(end_ip.split('.')[2]))   # 随机生成ip第三位
        random_ip_4 = random.randint(int(start_ip.split('.')[3]), int(end_ip.split('.')[3]))   # 随机生成ip第四位
        post_ip  = str(random_ip_3) + '.' + str(random_ip_4)       #  组成新的ip的后两个地址信息
        new_ip = pre_ip + post_ip  # 构造新的ip地址

        # 组合数据,写入DataFrame
        combined_strings = [rows['province'], rows['city'], rows['area'], new_ip]
        print(len(data_frame))
        data_frame.loc[len(data_frame)] = combined_strings  # 将组合的数据追加到DataFrame中
        print(data_frame.head())
        print("===================================================")

# 将DataFrame中的数据导入到excel中
excel_path = "ip_福建.xlsx"
data_frame.to_excel(excel_path, index=False)




相关文章
|
23天前
|
应用服务中间件 定位技术 网络安全
住宅IP和运营商IP有什么区别?
随着数字化发展,网络安全与隐私保护日益重要,代理IP成为热门选择。住宅IP由ISP分配给家庭用户,通常是动态的,适合日常上网,费用较低,且具有较高隐私保护。运营商IP则分配给企业或数据中心,多为静态,适用于高稳定性和带宽需求的业务,安全性更高但成本也更高。两者在用途、特性和成本上存在显著差异,用户可根据需求选择。
49 1
|
10月前
|
安全 网络安全
anywhere 无法正常使用的问题--IP地址解析
anywhere 无法正常使用的问题--IP地址解析
149 0
|
网络架构
IP 地址、网络号和主机号、ABC三类、ip地址可分配问题、子网掩码、子网划分
IP 地址、网络号和主机号、ABC三类、ip地址可分配问题、子网掩码、子网划分
667 0
|
网络协议 网络架构
百度搜索:蓝易云【网络:IP地址、子网掩码、网络地址、广播地址、网段、网关详解。】
这些概念是构建和理解网络的基础,它们在网络通信和地址分配中起着重要的作用。了解和正确配置这些概念对于建立和管理网络是至关重要的。
113 0
|
域名解析 缓存 网络协议
IP地址最终弹,DNS,数据链路层,特殊地址
IP地址最终弹,DNS,数据链路层,特殊地址
IP地址分类以及C类IP地址的子网划分
IP地址分类以及C类IP地址的子网划分
271 0
|
JSON 定位技术 数据格式
根据现有IP地址获取其地理位置(省份,城市等)的方法
根据现有IP地址获取其地理位置(省份,城市等)的方法
1276 0
|
弹性计算
阿里云IP地址在哪查询?
阿里云服务器IP地址在哪查看?在云服务器ECS管理控制台即可查看,阿里云服务器IP地址包括公网IP和私有IP,阿里云百科分享阿里云服务器IP地址查询方法
503 0
|
存储 缓存 网络协议
IP地址归属地那些事
最近各大社交平台都悄悄上线了一个新功能,就是显示用户的IP归属地,境内精确到省级,境外精确到国家或地区。在个人信息和每条评论上面都有,也是炸出来了一波xx在xx国的账号,各大号主纷纷出视频解释自己的ip归属为什么在国内,有说用代理的,有说给家人登录的,也有说在国内有工作室(团队)的......
677 0
|
网络协议 Windows
如何判断自己IP是内网IP还是外网IP
tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0~10.255.255.255   172.16.0.0/12:172.16.0.0~172.31.255.255   192.168.0.0/16:192.168.0.0~192.168.255.255 使用保留地址的网络只能在内部进行通信,而不能与其他网络互连。
10714 2