`
Jameslyy
  • 浏览: 385916 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IP表示为整数

阅读更多
int[] ip = {192, 168, 1, 100};

/* // 测试代码
System.out.println(Integer.toBinaryString(ip[0]));
System.out.println(Integer.toBinaryString(ip[1]));
System.out.println(Integer.toBinaryString(ip[2]));
System.out.println(Integer.toBinaryString(ip[3]));

System.out.println(" & 0xff: ");	// 不够八位的补齐八位
System.out.println(Integer.toBinaryString(ip[0] & 0xff));
System.out.println(Integer.toBinaryString(ip[1] & 0xff));
System.out.println(Integer.toBinaryString(ip[2] & 0xff));
System.out.println(Integer.toBinaryString(ip[3] & 0xff));

System.out.println("bit compute:");	// 不同部分位移8的倍数
System.out.println(Integer.toBinaryString((ip[0] & 0xff) << 24 ));
System.out.println(Integer.toBinaryString((ip[1] & 0xff) << 16 ));
System.out.println(Integer.toBinaryString((ip[2] & 0xff) << 8 ));
System.out.println(Integer.toBinaryString((ip[3] & 0xff) << 0 ));
*/

// 通过位或操作把位移之后的数加起来,得到的结果就是能够表示ip的整数
int v = ((ip[0] & 0xff) << 24 ) | ((ip[1] & 0xff) << 16 ) 
			| ((ip[2] & 0xff) << 8 ) | ((ip[3] & 0xff) << 0 );
System.out.println(Integer.toBinaryString(v));
System.out.println(v);

/* // 测试反向位移操作
System.out.println("reverse ip test ");
System.out.println(Integer.toBinaryString(0xff));
System.out.println(Integer.toBinaryString(v>>24));
System.out.println(Integer.toBinaryString(v>>24 & 0xff));
System.out.println(Integer.toBinaryString(v>>16));
System.out.println(Integer.toBinaryString(v>>16 & 0xff));
System.out.println(Integer.toBinaryString(v>>8));
System.out.println(Integer.toBinaryString(v>>8 & 0xff));
System.out.println(Integer.toBinaryString(v));
System.out.println(Integer.toBinaryString(v & 0xff));
*/

// 整数转化为ip数据
System.out.println("reverse ip: ");
ip[0] = v>>24 & 0xff;
ip[1] = v>>16 & 0xff;
ip[2] = v>>8 & 0xff;
ip[3] = v & 0xff;

for(int i: ip) {
	System.out.print(i+".");
}

 

分享到:
评论

相关推荐

    合法IP的表示

    现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中...

    python将ip地址转换成整数的方法

    主要介绍了python将ip地址转换成整数的方法,涉及Python针对IP地址的转换技巧,需要的朋友可以参考下

    C# IP地址与整数之间转换的具体方法

    1、IP地址转换为整数 原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个无符号的32位整数。 举例:一个ip地址为10.0.3.193 每段数字 相对应的二...

    IP地址格式输入文本框

    可以直接将IP地址粘贴到输入框中,可以将IP地址转化为整数,及将整数表示的IP地址转化为IP地址填充到文本输入框中。

    ip地址识别

    IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。 现在,根据以下...

    关于算IP地址、子网掩码

    为了帮助大家在考试时能够更快、更准确地计算出网络号/子网号、广播地址、可分配的网络/子网地址、有效子网号、主机数、子网数,下面对常见问题的解答技巧进行一个总结

    IP培训讲义

    一般写成:U:V:W:X:Y:Z或U-V-W-X-Y-Z,U到Z是0~255的整数(常用16近制表示),其中X:Y:Z代表以太网卡厂家,如 00:20:AF属于3Com。MAC地址是全球唯一的。IP地址:IP地址由一个32位值组成,它是由网络管理员为每一台...

    26万多条记录的ip地址对照查询表(附导入程序)

    最新最全的IP地址对照查询表 &lt;br&gt;26万多条记录的ip地址对照查询表(附导入程序) 包含两个IP地址文件,其区别是: ipaddress1.txt:用整数来表示IP地址(如:3232235777) ipaddress2.txt:字符串来表示IP...

    用e2πip表示丢番图方程x2+27y2=4p的整数解 (2013年)

    把素数表示为一些正整数平方和的问题是数论中基本问题之一.历史上如Fermat, Euler, Gauss等著名数学家都曾深入研究过.本文对于任何一个p≡1(mod 3)类型素数,从p次单位根e2πip开始,通过不同层次的组合推导出一组正...

    JavaScript中判断整数的多种方法总结

    之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer)。 JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的double类型一样。但实际操作中比如数组...

    详解Python判定IP地址合法性的三种方法

    IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法。 IPv4的ip地址格式:(1~255).(0~255).(0~255).(0~...

    ip-analyzer:分析文本文件中的IPv4和IPv6地址,例如配置,日志等

    ip分析仪 分析文本文件中的IPv4和IPv6地址,例如...简短,二进制和整数表示 IP掩码 IP前缀/子网的大小 前缀/子网的最后一个IP地址 长度(以位为单位) 检查ip是否为回送,本地链接,多播,不可路由,testnet,任意播

    【JAVA】(vip)蓝桥杯试题 基础练习 阶乘计算 BASIC-30 JAVA

    使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。  首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n...

    Socket编程.pdf

    表示形式:常用点分形式,如202.38.64.10,最后都会转换为一个32位的整数。 127.0.0.1 本地回环 端口号 为了区分一台主机接收到的数据包应该递交给哪个进程来进行处理,使用端口号 TCP端口号与UDP端口号独立 端口号...

    Javascript-IP-Converter:基于Web的小型工具,可将IP地址转换为其他格式

    Javascript IP转换器 这是一个基于Web的小型(javascript)IP转换器工具。 您可以使用它在以下表示之间转换IPv4地址: 虚线表示( 127.0.0.1 ) 八进制表示( 177.0.0.1 ) ... 整数表示( 2130706433 )

    wireshark数据包分析实验报告(1).doc

    请注意,这个字段所表示数的单位是 32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15) ,首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的 填充字段加以...

    易语言辅助模块

    参数 窗口透明度, 整数型, , 范围0-255,0为完全透明,255为不透明 .子程序 置窗口位置, 逻辑型, 公开, 移动窗口到指定位置 .参数 窗口句柄, 整数型 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .参数 窗口宽度, ...

    易语言 茶凉专用模块

    参数 进制, 整数型, 可空, 默认为十六进制 2为二进制,8为八进制,16为16进制 .子程序 读磁盘扇区, 逻辑型, 公开 .参数 扇区号, 整数型 .参数 扇区内容, 字节集 .子程序 读内存长整数型, 长整数型, 公开, 从内存中...

    PopularIP:在大文件中找到最受欢迎的ip

    解决方案IP 地址(xxx.xxx.xxx.xxx)可以用正整数(long)值表示。 取值范围为 (0, 0xffffffffL) 我们可以定义一个大小为0xffffffffL的long数组,然后用元素索引表示IP,用元素值表示对应IP的访问时间。 要定义这样...

    IP-Mapper:将IP的频率计数映射到世界地图上

    用法: python ip-mapper.py &lt;your&gt; 输入文件的格式应为频率计数(整数),后跟空格,IPv4地址和换行符。 其中包括一个示例: example-input.txt 。 (其中列出的IP是 。) 有两个输出映射: 1.黑白的,以高对比度的...

Global site tag (gtag.js) - Google Analytics