【java】網絡編程之IP類(二)

接下來博客主要整理網絡編程裏面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
api
InetAddress對象常用的靜態方法:
InetAddress 可以通過
getByName()方法是根據域名DNS或者Ip地址,來解析返回Ip地址的。

常用的成員方法:

  1. getHostAddress(): 返回地址
  2. 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地址
	
	}

}

結果:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章