python判断ip所属地区 python 判断ip 网段

这篇具有很好参考价值的文章主要介绍了python判断ip所属地区 python 判断ip 网段。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

IP地址是互联网中唯一标识一个设备的地址,有时候需要判断一个IP地址所属的地区,这就需要用到IP地址归属查询。本文将介绍Python如何通过IP地址查询所属地区并展示代码。

python判断ip所属地区 python 判断ip 网段,python,python,tcp/ip,网络 

一、 IP地址归属查询

IP地址归属查询又称IP地址归属地查询、IP地址归属地定位、IP地址查询、IP地址定位等,是通过查询互联网上公共的IP数据库,来得到一个IP地址所属的地理位置、运营商等信息。

二、 IP地址的分类

IP地址分为IPv4和IPv6两种,IPv4是32位地址,IPv6是128位地址。通常我们使用的是IPv4地址, 其中一个IPv4地址由4个数字组成,每个数字之间用点号“.”隔开,每个数字的取值范围为0~255。例如: 192.168.1.1。

三、 IP地址转二进制

IP地址在计算机中以二进制表示,需要将IP地址转为二进制数,这就需要用到位运算符。在Python中,使用bin()函数将十进制数转为二进制数。例如:

ip = "192.168.1.1"
binary_ip = ".".join([bin(int(x)+256)[3:] for x in ip.split(".")])
print(binary_ip)

输出结果为:11000000.10101000.00000001.00000001

四、 IP地址归属地查询库

在Python中,有多个第三方库可以使用,例如pygeoip、maxminddb等。在本文中,我们将使用淘宝IP地址库,淘宝IP地址库是淘宝开放平台提供的免费IP地址库,包括IPv4和IPv6地址库。我们只需通过HTTP请求即可获取到所需的IP地址信息。

五、 Python代码实现

接下来,我们将通过Python代码来实现IP地址归属地查询。代码分为两部分:第一部分是将IP地址转换为二进制位,第二部分是通过HTTP请求查询IP地址归属地。

首先,我们需要导入所需的库:

import requests

然后,实现将IP地址转为二进制:

def get_binary_ip(ip):
    """
    将IP地址转为二进制
    :param ip: IP地址,例如:"192.168.1.1"
    :return: IP地址的二进制表示,例如:"11000000.10101000.00000001.00000001"
    """
    binary_ip = ".".join([bin(int(x) + 256)[3:] for x in ip.split(".")])
    return binary_ip

接下来,实现通过HTTP请求查询IP地址归属地:

def get_location_by_ip(ip):
    """
    通过HTTP请求查询IP地址归属地
    :param ip: IP地址,例如:"192.168.1.1"
    :return: IP地址的归属地,例如:"广东省深圳市"
    """
    url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip
    try:
        response = requests.get(url, timeout=5)
        data = response.json()
        if data["code"] == 0:
            location = data["data"]["region"] + data["data"]["city"]
        else:
            location = "未知"
    except Exception as e:
        print(e)
        location = "未知"
    return location

最后,我们将两个函数结合起来,实现完整功能:

import requests

def get_binary_ip(ip):
    """
    将IP地址转为二进制
    :param ip: IP地址,例如:"192.168.1.1"
    :return: IP地址的二进制表示,例如:"11000000.10101000.00000001.00000001"
    """
    binary_ip = ".".join([bin(int(x) + 256)[3:] for x in ip.split(".")])
    return binary_ip

def get_location_by_ip(ip):
    """
    通过HTTP请求查询IP地址归属地
    :param ip: IP地址,例如:"192.168.1.1"
    :return: IP地址的归属地,例如:"广东省深圳市"
    """
    url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip
    try:
        response = requests.get(url, timeout=5)
        data = response.json()
        if data["code"] == 0:
            location = data["data"]["region"] + data["data"]["city"]
        else:
            location = "未知"
    except Exception as e:
        print(e)
        location = "未知"
    return location

if __name__ == "__main__":
    ip = "192.168.1.1"
    binary_ip = get_binary_ip(ip)
    location = get_location_by_ip(ip)
    print("IP地址:{}的归属地是:{}".format(ip, location))

六、 总结

本文介绍了Python如何通过IP地址查询所属地区并展示了代码实现。通过学习本文,你可以掌握将IP地址转为二进制数和通过HTTP请求查询IP地址归属地的方法。文章来源地址https://www.toymoban.com/news/detail-666362.html

到了这里,关于python判断ip所属地区 python 判断ip 网段的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 不同IP网段连接网络打印机

    帮朋友买了个网络打印机,昨天打印机到了,他对电脑不是很懂,所以一定要我来帮忙设置。本来这个东西没什么复杂的,打印机机直接接到路由器上或交换机上,然后电脑端加驱动就行了,电脑一般会自动找到网络打印机。但一般家庭使用都会有各种限制,比如路由器附近

    2024年02月08日
    浏览(55)
  • 网络 | 网络层讲解 | IP协议 | 分片处理与网段划分

    tcp作为传输层的典型协议,保证了报文传输的可靠性,使每份报文完整的传输。在传输层之下的网络层解决的是传输能力的问题,它使得数据 可以 发送到对方主机,负责数据的路由,与传输层的区别在于:网络层侧重于 能不能 ,而传输层侧重于 好不好 并且我们还要区分一

    2024年02月11日
    浏览(43)
  • IP地址、子网掩码、网络地址、广播地址、IP网段

    本文主要讨论iPv4地址。 实际的 IP 地址是一串32 比特的数字,按照 8 比特(1 字节)为一组分成 4 组,分别用十进制表示然后再用圆点隔开,这就是我们平常经常见到的 IP 地址格式。 分类 范围 网络号 主机号 地址开始以(位) 默认子网掩码 用途 A类 1.0.0.0 - 126.0.0.0 前8位 后

    2024年02月09日
    浏览(60)
  • 网络:IP地址、子网掩码、网络地址、广播地址、网段、网关

    目录 一、IP地址 二、子网掩码 三、网络地址 四、广播地址 五、网段 六、网关 七、IP地址、子网掩码、网络地址、广指地址、网殷、网关的关系 参考链接  一、IP地址 IP地址是因特网协议(IP)中使用的一种数字标识符,用于唯一地标识网络中的设备。每台连接到因特网的设

    2024年02月09日
    浏览(56)
  • Python实现对IP网段的快速检测

    前言 本文是该专栏的第33篇,后面会持续分享python的各种干货知识,值得关注。 在工作上可能会遇到这样的需求,需要你对某个IP地址的网段进行批量检测。将 可用 和 不可用 IP批量筛选出来,尤其是在爬虫项目中,对于IP可用性的检测需求较多。 那么在python中,有没有方法

    2024年02月14日
    浏览(39)
  • Python网络编程基础之ip地址,端口号,TCP,socket

    IP地址 IP地址 (Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。 IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 换而言之,IP 地址就是标识网络中设备的一个地址,好比

    2024年02月02日
    浏览(39)
  • PLC采集串口被占用、网口被占用,网络IP地址不能修改、多台设备IP不同网段等问题解决方案

    以下是我们总结的项目中解决办法,经济实用。 一、串口被占用(具体项目中需要的型号选项请联系官网) 1、 在项目实施过程中,串口被占用很常见。一般我们使用协议转换器,直接转换成标准以太网协议。如西门子PPI、MPI转换成S7协议,兼容编程软件。 2、三菱PLC ,FX系列转

    2024年02月13日
    浏览(50)
  • 计算机网络4小时速成:如何根据IP地址和子网掩码计算自己的网段和ip可用范围?

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库 这oracle比sql安全,强大多了,所以你需要学

    2024年02月06日
    浏览(43)
  • 使用PING命令轻松判断TCP/IP故障四步骤

    1、Ping 127.0.0.1: 127.0.0.1是本地循环地址,如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。 2、Ping本机的IP地址: 用IPConfig查看本机IP,然后Ping该IP,通则表明网络适配器(网卡或MODEM)工作正常,不通则是网络适配器出现故障。 3、Ping同网段计算机的IP: Ping一台同

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包