/***************************************************************************** * 点分十进制IP校验.转换,掩码校验 * 声明: * 本文主要记录如何对IP.掩码进行转换.校验等相关内容,注意大小端的问题. * * 2016-5-5 深圳 南山平山村 曾剑锋 ****************************************************************************/ 一.…
来源:http://www.cnblogs.com/vovlie/archive/2012/10/17/2727029.html 利用lambda表达式,非常简洁 int_to_ip = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)]) ip_to_int = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])]) int to…
原题 https://www.codewars.com/kata/int32-to-ipv4/train/java Take the following IPv4 address: 128.32.10.1 This address has 4 octets where each octet is a single byte (or 8 bits). 1st octet 128 has the binary representation: 10000000 2nd octet 32 has the…
IP地址转换 描述: IP地址的长度为32,即有2^32-1个地址.IP地址一般采用点分十进制表示法,例如"192.168.1.1".IP地址也可以直接用一个32位的整数进行表示.本题目要求根据给定的整数IP地址表示发,将其转换为点分十进制的形式. 举个例子: 输入整数IP地址为 3232235777 其对应十六进制为 0xC0A80101 每字节转为十进制 0xC0=192,0xA8=168,0x01=1,0x01=1 则输出为 192.168.1.1 运行时间限制: 1 Sec 内…
1. 套接字地址结构 1.1 IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中.下边给出它的定义: 1)struct in_addr专门用来存储IP地址,对于IPv4来说,IP地址为32位无符号整数.其定义如下: 注:in是internet缩写. struct in_addr { unsigned long s_addr; } 具体在<netinet/in.h>的定义是这样子的…
1. 函数用途:数字网络序本地序转换 适用类型:IP地址uint32_t类型.端口号uint16_t类型 #include<netinet/in.h> extern uint32_t ntohl (uint32_t __netlong) __THROW __attribute__ ((__const__)); extern uint16_t ntohs (uint16_t __netshort) __THROW __attribute__ ((__const__)); extern uint3…
linux的套接字部分比较容易混乱,在这里稍微总结一下. 地址转换函数在地址的文本表达式和它们存放在套接字地址结构中的二进制值进行转换. 地址转换函数有四个:其中inet_addr 和 inet_ntoa适用于IPv4,inet_pton 和 inet_ntop同时适于用IPv4和IPv6. 套接字地址结构分为IPv4套接字地址结构sockaddr_in和IPv6套接字地址结构sockaddr_in6.其中IPv4的套接字地址结构如下. IPv4套接字地址结构:(定义在<netinet/in.h…
关于IP数据包首部校验字段的理解 IP数据包格式及首部个字段:  www.2cto.com   对上表的各个数据项就不一一解释了,这里具体关注以下几个数据项: 1.4位首部长度:这里的长度指的是4Bytes单元的个数,例如上图在“选项”字段不存在的情况下,IP包的首部是20Bytes,那么首部长度字段应该为5.另外根据首部长度的位数,也可以得知IP数据包的首部最长为:(2^4 - 1) * 4  = 60 Bytes,当然这个不常用,为了减少开销IP数据包的首部一般为20 Bytes. 2.16…
原文:http://blog.chinaunix.net/uid-20788470-id-1841646.html   1. IP转换为整数> vi ip2num.sh#!/bin/bash# 所有用到的命令全是bash内建命令 IP_ADDR=$1[[ "$IP_ADDR" =~ "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" ]] || { echo "ip format error.&quo…
通常,我们用点分十进制字符串表示ipv4地址(192.168.1.1),用十六进制字符串表示ipv6地址(fe80::20c:29ff:fee9:4bcc). ipv4转换函数 #include <arpa/inet.h> // 字符串ip地址转换成网络字节序ip地址,地址存储在ip指向的结构中,成功返回1,否则0 int inet_aton(const char *cp, struct in_addr *ip); // 功能同上,失败返回INADDR_NONE,不推荐使用 in_addr_t…