接下來博客主要整理網絡編程裏面java對應的類。上一篇大概對網絡編程中的相關概念作了梳理,本文只對IP地址這個概念進行介紹。
IP地址
IP地址是用來標識網絡中的一個通信實體的地址。通信實體可以是計算機、路由器等等。互聯網上的每臺服務器都會有自己的IP地址,局域網上的每臺計算機也會有IP地址,但是每臺設備的IP地址可以是多個的。
IP地址的分類:
- IPV4:32位地址,以點分十進制表示,每個位數用十進制表示,數之間用點分隔,比如:192.168.0.0
- IPV6:128位地址(16個字節,1個字節8位),可以寫成8個16 位 (8x16=128)的無符號整數,每個整數用四個十六進制位表示,數之間用冒號分隔,比如:3ffe:3201:1411:1280:c8ff:fe4d:db39:1984
特殊的IP地址:
- 127.0.0.1 代表的是本機地址
- 192.168.0.0-192.168.255.255 爲私有地址,屬於非註冊地址,專門爲組織機構內部使用的
InetAddress
在java中,每個對象都是以類的形式存在的,所以IP地址也是一個類。IP地址對應的java類是InetAddress。
InetAddress對象常用的靜態方法:
getByName()方法是根據域名DNS或者Ip地址,來解析返回Ip地址的。
常用的成員方法:
- getHostAddress(): 返回地址
- getHostName():返回計算機名
測試例子
我們可以使用這個類來獲取IP地址
import java.net.InetAddress;
import java.net.UnknownHostException;
public class IpTest {
public static void main(String[] args) throws UnknownHostException {
// TODO Auto-generated method stub
InetAddress Ipadd = InetAddress.getLocalHost();
System.out.println("直接創建對象\n"+Ipadd.getHostAddress()); //返回地址
System.out.println(Ipadd.getHostName()); //返回計算機名稱
//根據域名得到InetAddress對象
Ipadd = InetAddress.getByName("www.baidu.com");
System.out.println("根據域名返回Ip地址\n"+Ipadd.getHostAddress()); //返回百度服務器ip
System.out.println(Ipadd.getHostName()); //返回域名/服務器名稱
//根據ip得到InetAddress對象
Ipadd = InetAddress.getByName("182.61.200.6");
System.out.println("根據Ip地址返回域名\n"+Ipadd.getHostName()); //返回服務器名稱
//如果Ip地址不存在或者DNS不允許進行IP地址和域名的映射,則返回Ip地址
}
}
結果: