複製代碼代碼如下:
package net;
import java.net.*;
/*
* getAddress方法和getHostAddress類似,它們的唯一區別是getHostAddress方法傳回的是字串形式的IP位址,
* 而getAddress方法傳回的是byte陣列形式的IP位址。
* Java中byte型別的取值範圍是-128?127。如果回傳的IP位址的某個位元組是大於127的整數,在byte數組中就是負數。
* 由於Java中沒有無符號byte類型,因此,若要顯示正常的IP位址,必須使用int或long類型。
*/
public class MyIp
{
public static void main(String[] args) throws Exception
{
InetAddress ia = InetAddress.getByName("www.cnblogs.com");
byte ip[] = ia.getAddress();
/*
for (byte part : ip)
System.out.print(part + " ");
System.out.println("");
for (byte part : ip)
{
int newIp = (part < 0) ? 256 + part : part;
System.out.print(newIp + " ");
}
*/
int[] array = new int[5];
for(int i=0; i<ip.length; i++) {
array[i] = (ip[i] < 0) ? 256 + ip[i] : ip[i];
}
String str = TellIpType(array[0]);
System.out.println(str);
}
/*
* 根據第一個位元組判斷IP位址類型
*/
public static String TellIpType(int num) {
if(num<127)
return "A";
else if(num<192)
return "B";
else if(num<224)
return "C";
else if(num<240)
return "D";
else
return "E";
}
}