この記事の例は、JavaのIPと整数の方法を説明しています。あなたの参照のために全員のためにそれを共有してください。特定の分析は次のとおりです。
1。基本的な知識ポイント
ip-> integer:
左シフト(<<)、(&)、または(|)これらの操作を介してIPアドレスをバイト配列に変換します。
integer-> ip:
右シフト操作(>>>)、右を24ビットにシフトし、取得した0xffを実行します。
右シフト操作(>>>)、16ビットを右にシフトし、取得した数値を実行します。
右シフト操作(>>>)は、8ビットの右に移動し、取得した数値を実行します。
整数値はオペレーター(&)0xffで実行され、取得した数は4番目のステージIPです。
第二に、javaコードの例(ipv4util.java)
パッケージMichael.utils; } catch(例外e){新しいIllegalgumentexception(iPaddr + "Is Invalid IP"); 。 "); ret [0] =(byte)(integer.parseint(iparr [0]); ret [1] =(byte)(integer。parseint(iparr [1])&0xff; ret [2] =( byte)(integer.parseint(iparr [2]); ret [3] =(byte)(iparr [3])&0xff); ip "); te [] bytes){new stringbuffer()。append(bytes [0]&0xff).append( '。')。append(bytes [1]&0xff).appnd( '。')を返します。 append(bytes [2]&0xff).appnd( '。')。 addr |。 ;} public static int ipaddr(string ipaddr){try {testr)(iptobytesbyinet(iPaddr));} atic byte [] intbytes(int ipint){] ipaddr = new byte [0] =(byte) (ipint >>> 16)&0xff); Static String Inttoip (int iPint) {Return NewBuilder () .append (((((((((((((((((((((((((((((((((((( (((」 .appnd((ipint >> 16)&0xff).appnd( '。')。 string [] iparr = ipandmask.split( "/"); trim()); if(netma sk <0 || netmask> 31){" + ipandmask);} int ipint = ipv4util.iptoint(iparr [0]); &(0xfffffffffffff <(3 3 2 -netmask); int hostscope =(0xffffffffff >>> netmask); return new int [] {netip、netip + hostscope};} public static string [] getipaddrscope(string ipandmask){int [int [int [ ] ipintarr = ipv4util(ipandmask); ){int netmaskint = 0、try {ipv4util(ipaddr); ipint};} netmaskint = ipv4utiltoint(mask); hostscope};} h(例外e){新しいIllegalargumentedexception( "Invalid IP Scope Express IP:" + iPaddr + "Mask:" + Mask);}} public Static String [] getIpStrScope(String iPaddr、String Mask){int int int [] ipv4util.getipintscope(ip addr、mask);スロー{String iPaddr = "192.168.8.1"; ){bytestr.append(b);} else {bytestr.append( "、" "、" " + b);}} system.out.println(" ip: " + ipaddr +" byte-> byte []: [" + bytestr +"); );} else {bytestr.append( "、" + b);}} system.out .println( "ip:" + ipaddr + "byreg-> byte []:[" + bytestr + "]); system。 out.println( "byte []:" + bytesst + " - > ip:" + bytestoip(bytearr)); + " - >" + ipint); ipscope = ipv4util.getipintscope(ipandmask);; ipandmask + " - > intアドレスセグメント:[" + ipscope [1] + "]); + " - > IPアドレスセグメント:[ + ipv4util.inttoip(ipscope [0]) +"、 " + ipv4util.inttoip(ipscope [1])); string ipaddr1 =" 192.168.1.1 "、ipmask1 =" 255.255.255.05.05.055.0 ""; int [] ipscope1 = ipvutil.getipintscope(ipaddr1、ipmask1); "、" ipscope1 [1] + "]) ipv4util.inttoip(ipscope1 [1]) + "]" ");}}
この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。