美文网首页
IP与数字之间的转化

IP与数字之间的转化

作者: 好小葱1 | 来源:发表于2018-08-07 15:46 被阅读93次

IP转数字inet_aton()

mysql> select inet_aton('255.255.255.255');
+------------------------------+
| inet_aton('255.255.255.255') |
+------------------------------+
|                   4294967295 |
+------------------------------+
1 row in set (0.00 sec)
 
mysql> select inet_aton('192.168.1.1');    
+--------------------------+
| inet_aton('192.168.1.1') |
+--------------------------+
|               3232235777 |
+--------------------------+
1 row in set (0.00 sec)
 
mysql> select inet_aton('10.10.10.10');
+--------------------------+
| inet_aton('10.10.10.10') |
+--------------------------+
|                168430090 |
+--------------------------+
1 row in set (0.00 sec)

所以,IP的字段长度设置成int(10)满足使用条件。

# python写法
import socket, struct

def ip_to_long(ip_address):
    """
    convert ip to long
    """
    packed_ip = socket.inet_aton(ip_address)
    # 使用0是因为解包的是一个单元素的元组
    return struct.unpack('!L', packed_ip)[0]

数字转IP函数inet_ntoa()

mysql> select inet_ntoa(4294967295);
+-----------------------+
| inet_ntoa(4294967295) |
+-----------------------+
| 255.255.255.255       |
+-----------------------+
1 row in set (0.00 sec)
 
mysql> select inet_ntoa(3232235777); 
+-----------------------+
| inet_ntoa(3232235777) |
+-----------------------+
| 192.168.1.1           |
+-----------------------+
1 row in set (0.00 sec)
 
mysql> select inet_ntoa(168430090); 
+----------------------+
| inet_ntoa(168430090) |
+----------------------+
| 10.10.10.10          |
+----------------------+
1 row in set (0.00 sec)
 
mysql> select inet_ntoa(0);        
+--------------+
| inet_ntoa(0) |
+--------------+
| 0.0.0.0      |
+--------------+
1 row in set (0.00 sec)
# python写法
def long_to_ip(long_int):
    """
    convert long to ip
    """
    packed_ip = struct.pack('!L', long_int)
    return socket.inet_ntoa(packed_ip)

相关文章

  • IP与数字之间的转化

    IP转数字inet_aton() 所以,IP的字段长度设置成int(10)满足使用条件。 数字转IP函数inet_...

  • 一个有意思的js算法题

    题目:IP地址和数字之间的转换 我写的函数如下: 罗列知识点 判断是ip地址还是数字 数字转化为2进制数 数字补齐...

  • 数字阅读产品の脑洞

    一、孵化IP形成娱乐闭环 数字阅读产品,孵化IP后衍生IP文娱系列产品,IP之间相互联动形成文娱产品的闭环效应 1...

  • TCP/IP 协议详解和运作过程

    一、TCP/IP协议族 1、数据链路层 ARP协议和RARP协议,它们实现了IP地址和机器物理地址之间的相互转化 ...

  • 计算机网络|IP地址与分类(IPv4)

    每个IP地址由4个小于256的数字组成,数字之间用“.”分开。IP地址共32位,4个字节。它有两种表示格式:二进制...

  • NSNumberFormatter介绍和用法

    NSNumberFormatter可以用来处理NSString和NSNumber之间的转化,可以满足基本的数字形式...

  • js中,关于不同类型比较,各种类型的转换原则

    在js中,‘==’进行不同类型比较,各个数据之间的转化 数字 == 字符串 2. 字符串 == 对象 将对象转化为...

  • Swift--Swift原生数据类型

    Swift数据类型 整型 浮点型 数字表达式 数字类型之间的转化 布尔型 元组类型 可选类型 Swift数据类型 ...

  • 正则表达式匹配合法网络ip

    1、在写正则表达式前,需要知道什么是合法的网络ip(不识别本地和回路): ip地址由四个数字组成,每个数字之间用"...

  • 17作 正则表达式

    写一个正则表达式判断一个字符串是否是ip地址规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的大小...

网友评论

      本文标题:IP与数字之间的转化

      本文链接:https://www.haomeiwen.com/subject/fdlavftx.html