添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

将IP地址转换成十进制整数,或者将十进制整数转换成IP地址,在网络编程中经常会遇到,其中的转换算法非常简单,利用强大的Python,更是只需要1-2行代码就搞定了。

IP地址转换成整数算法

1. 将 IP(A.B.C.D) 地址按照“."分割成4部分;

2. 分别将分割的四部分(A, B, C, D)转换成正整数 a, b, c, d(它们的取值范围为0-255,一个字节就可以存储);

3. 将分割的四个整数a, b, c, d 分别作为32位正整数的4个字节,由高到低保存。

整数转换成IP地址算法

1. 取32位整数的4个字节作为单独的整数 a, b, c, d;

2. 将 a, b, c, d 分别作为 IP 地址的字符串 A, B, C, D;

3. 转化成IP地址形式  A.B.C.D。

# -*- coding: cp936 -*-
IP = "192.168.10.1"
def addr2dec(addr):
    "将点分十进制IP地址转换成十进制整数"
    items = [int(x) for x in addr.split(".")]
    return sum([items[i] << [24, 16, 8, 0][i] for i in range(4)])
def dec2addr(dec):
    "将十进制整数IP转换成点分十进制的字符串IP地址"
    return ".".join([str(dec >> x & 0xff) for x in [24, 16, 8, 0]])
dec = addr2dec(IP)
print dec
print dec2addr(dec)
3232238081
192.168.10.1
list2 = [] for item in list1: item = bin(int(item)) ---0b11000000 0b10101000 0b1100000 0b1011110 ----   # 去掉每段二进制前的... 我们知道 ip地址 实际上是32位二进制数,例如: 点分十进 IP地址 100.4.5.6 <---->32位二进制数01100100.00000100.00000101.00000110 若将32位二进制数 转换 十进制 ,就得到了数字地址。 简单来...
一个 IP地址 是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的 IP地址 转换 十进制 格式表示的 IP地址 输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式: 在一行中输出 十进制 格式的 IP地址 ,其由4个 十进制 数组成(分别对应4个8位的二进制数),中间用“.”分隔开。 输入样例: 11001100100101000001010101110010 输出样例: 204.148.21.114 思路:把四个字节分别截取出来,再将二进制转化成 十进制 代码 如下: #include
输入一个以“#”结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其 转换 十进制 数后输出。如果过滤后字符串的首字符为“-”,代表该 感觉题意有点不清,“如果过滤后字符串的首字符为“-””有点模糊,迷迷糊糊就做了。。。。。下面的 代码 是按照第一个十六进制字符之前是否有“-”做的。 #include &lt;stdio.h&gt; int main(...
using namespace std; bool check(char *str); //检查串中是否有0/1之外的字符 int trans(char *str); //将0/1字符串 转换 十进制 bool check(char *str) int i; for(i=0;i<32;i++) if(str[i
‬‬一个 IP地址 是由四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的 IP地址 转换 十进制 格式表示的 IP地址 输出。如果输入的数字不足32位或超过32位或输入的数字中有非0和1的数字时输出“data error!”。 要求:综合使用列表,集合和生成式。 个人能力有限,仅供参考,共同学习!......