日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

internet地址java表示

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 internet地址java表示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【README】

本文主要總結 internet地址相關知識,及相關的 java 類 ;

0)ip地址是什么

  • 連接到internet的設備稱為節點,計算機節點稱為主機(host),每個節點至少由一個唯一的數(或數字串)來表示以便通訊,這個數就是ip地址 ;

1)ipv4地址

  • ipv4地址表示:4個無符號字節,點號分隔,每個字節從0~255,最高字節在前;如152.19.134.132;
  • 內部網ip, 以10.? 172.16.?? 172.31.? 和 192.168. 開頭的ip地址都未分配到internet,可以在內部網使用;(127.0.0.1是回環地址,即指向本地機器節點)

2)ipv6地址

  • ipv6地址:16個字節, 冒號分隔的8個區塊,每個區塊是4個16進制數字;如 FEDC:BA98:9871:3210:ABCD:BA98:9876:ABCE, 可以簡化0;
  • ipv4地址的個數為 40億多一點(2^32=4G),無法做到每臺計算機一個地址,所以為了增加ip地址個數,引入了ipv6地址 ;

3)域名

  • 因為ip地址全是數字,不方便記憶,所以引入了域名;以百度而言;其ip地址是 110.242.68.3,但這串數字不好記憶,所以引入了域名 www.baidu.com;

4)域名服務器-DNS SERVER

  • 路由器在進行路由前,需要把域名解析為ip地址, 這個功能是由 域名服務器完成的;

【1】InetAddress ip地址類

【1.1】InetAddress類說明

此類表示 Internet 協議 (IP) 地址
IP 地址是 IP 使用的 32 位或 128 位無符號數,IP 是構建 UDP 和 TCP 等協議的低級協議。
一個 InetAddress 的實例由一個 IP 地址和它對應的主機名組成(取決于它是否用主機名構造 或 它是否已經進行了主機名反向解析)。

【1.2】InetAddress ip地址測試用例

// 獲取ip地址@Testpublic void f1() throws Exception {// 根據域名獲取ip地址InetAddress address = InetAddress.getByName("www.oreilly.com");System.out.println(address); // www.oreilly.com/23.57.133.173// 根據ip地址字符串獲取ip地址對象address = InetAddress.getByName("23.57.133.173");System.out.println(address); // /23.57.133.173System.out.println(address.getHostName()); // a23-57-133-173.deploy.static.akamaitechnologies.com// 獲取一個主機域名的所有ip地址InetAddress[] addresses = InetAddress.getAllByName("www.baidu.com");Arrays.stream(addresses).forEach(System.out::println); // www.baidu.com/110.242.68.4 // www.baidu.com/110.242.68.3}// 查找本地機器地址@Testpublic void f2() throws Exception {InetAddress address = InetAddress.getLocalHost();System.out.println(address); // DESKTOP-E4IASRJ/192.168.163.1}// 查找本地機器的ip地址@Testpublic void f4_4() throws Exception {InetAddress address = InetAddress.getLocalHost();String hostAddress = address.getHostAddress();System.out.println(hostAddress); // 192.168.163.1}

【1.3】ip地址類型

【1.3.1】單播

  • 單個接口的標識符。 發送到單播地址的數據包將傳送到由該地址標識的接口
  • 未指定地址——也稱為任何本地或通配符地址。 它絕不能分配給任何節點。 它表示沒有地址。 它的一個例子是作為 bind 的目標,它允許服務器接受任何接口上的客戶端連接,以防服務器主機有多個接口。未指定的地址不得用作 IP 數據包的目的地址。
  • 環回地址(127.0.0.1)——這是分配給環回接口的地址。 發送到此 IP 地址的任何內容都會循環并成為本地主機上的 IP 輸入。 該地址通常在測試客戶端時使用。
  • 【1.3.2】多播

    一組接口的標識符(通常屬于不同的節點,即多臺主機)。 發送到多播地址的數據包將傳送到該地址標識的所有接口。


    【1.4】ipv4和ipv6地址

    1)如何判斷一個地址是ipv4 還是ipv6 ?

    // ip地址類型, ipv4 or ipv6 ?@Testpublic void f4_5() throws UnknownHostException {InetAddress address = InetAddress.getByName("www.oreilly.com");byte[] addressByteArr = address.getAddress();if (addressByteArr.length == 4) System.out.println("ipv4"); // ipv4if (addressByteArr.length == 6) System.out.println("ipv6");}

    補充,java使用了 Inet4Address,? Inet6Address 分別表示 ipv4和ipv6 地址;?


    【2】NetWorkInterface類-網絡接口類

    0)api說明

    此類表示由名稱和分配給此接口的 IP 地址列表組成的網絡接口。 用于標識加入組播組的本地接口。 接口通常以諸如“le0”之類的名稱命名;

    補充,如何理解網絡接口? 狹隘理解就是一個物理上的網線插拔口, 廣義上可以是虛擬網絡接口,比如 vmnet8;

    ?

    1)NetWorkInterface類實例表示一個本地ip地址,或者一個物理接口,或一個虛擬接口;

    2)該類提供了枚舉所有本地地址的方法,其返回值類型是? InetAddress ;

    【2.1】NetworkInterface 類獲取所有網絡接口

    // NetworkInterface 類獲取所有網絡接口@Testpublic void f4_8() throws SocketException {Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();while(interfaces.hasMoreElements()) {NetworkInterface myinterface = interfaces.nextElement();System.out.println(myinterface);}}

    打印結果如下:可以看到, NetworkInterfaces 獲取的網絡接口有有限網卡,無線網卡,以及虛擬網卡接口;

    name:lo (Software Loopback Interface 1) name:net0 (Microsoft 6to4 Adapter) name:eth0 (VMware Virtual Ethernet Adapter for VMnet1) name:net1 (WAN Miniport (SSTP)) name:net2 (Microsoft IP-HTTPS Platform Adapter) name:eth1 (WAN Miniport (IPv6)) name:eth2 (WAN Miniport (IP)) name:ppp0 (WAN Miniport (PPPOE)) name:wlan0 (Intel(R) Dual Band Wireless-AC 8265) name:eth3 (Bluetooth Device (Personal Area Network)) name:net3 (WAN Miniport (L2TP)) name:wlan1 (Microsoft Wi-Fi Direct Virtual Adapter #2) name:net4 (WAN Miniport (PPTP)) name:eth4 (Intel(R) Ethernet Connection (5) I219-V) name:wlan2 (Intel(R) Dual Band Wireless-AC 8265-WFP Native MAC Layer LightWeight Filter-0000) name:net5 (Microsoft Teredo Tunneling Adapter) name:eth5 (VMware Virtual Ethernet Adapter for VMnet8) name:eth6 (WAN Miniport (Network Monitor)) name:net6 (WAN Miniport (IKEv2)) name:wlan3 (Microsoft Wi-Fi Direct Virtual Adapter) name:eth7 (Microsoft Kernel Debug Network Adapter) name:eth8 (Sangfor SSL VPN CS Support System VNIC) name:wlan4 (Intel(R) Dual Band Wireless-AC 8265-Virtual WiFi Filter Driver-0000) name:wlan5 (Intel(R) Dual Band Wireless-AC 8265-Native WiFi Filter Driver-0000) name:eth9 (Intel(R) Ethernet Connection (5) I219-V-WFP Native MAC Layer LightWeight Filter-0000) name:eth10 (Intel(R) Ethernet Connection (5) I219-V-QoS Packet Scheduler-0000) name:eth11 (Intel(R) Ethernet Connection (5) I219-V-WFP 802.3 MAC Layer LightWeight Filter-0000) name:wlan6 (Intel(R) Dual Band Wireless-AC 8265-QoS Packet Scheduler-0000) name:wlan7 (Intel(R) Dual Band Wireless-AC 8265-WFP 802.3 MAC Layer LightWeight Filter-0000) name:wlan8 (Microsoft Wi-Fi Direct Virtual Adapter-WFP Native MAC Layer LightWeight Filter-0000) name:wlan9 (Microsoft Wi-Fi Direct Virtual Adapter-Native WiFi Filter Driver-0000) name:wlan10 (Microsoft Wi-Fi Direct Virtual Adapter-QoS Packet Scheduler-0000) name:eth12 (WAN Miniport (IP)-WFP Native MAC Layer LightWeight Filter-0000) name:eth13 (WAN Miniport (IP)-QoS Packet Scheduler-0000) name:eth14 (WAN Miniport (IPv6)-WFP Native MAC Layer LightWeight Filter-0000) name:eth15 (WAN Miniport (IPv6)-QoS Packet Scheduler-0000) name:eth16 (WAN Miniport (Network Monitor)-WFP Native MAC Layer LightWeight Filter-0000) name:eth17 (WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000) name:wlan11 (Microsoft Wi-Fi Direct Virtual Adapter-WFP 802.3 MAC Layer LightWeight Filter-0000) name:wlan12 (Microsoft Wi-Fi Direct Virtual Adapter #2-WFP Native MAC Layer LightWeight Filter-0000) name:wlan13 (Microsoft Wi-Fi Direct Virtual Adapter #2-Native WiFi Filter Driver-0000) name:wlan14 (Microsoft Wi-Fi Direct Virtual Adapter #2-QoS Packet Scheduler-0000) name:wlan15 (Microsoft Wi-Fi Direct Virtual Adapter #2-WFP 802.3 MAC Layer LightWeight Filter-0000)Process finished with exit code 0

    【2.2】NetworkInterface 類獲取單個網絡接口

    // NetworkInterface 類獲取單個網絡接口@Testpublic void f4_8_1() throws SocketException {NetworkInterface anInterface = NetworkInterface.getByName("eth0");System.out.println(anInterface); // name:eth0 (VMware Virtual Ethernet Adapter for VMnet1)// 獲取分配給該接口的ip地址System.out.println("==== 分配給接口的所有ip地址");anInterface.getInterfaceAddresses().forEach(x->System.out.println(x.getAddress().getHostAddress()));}

    運行結果:

    name:eth0 (VMware Virtual Ethernet Adapter for VMnet1)
    ==== 分配給接口的所有ip地址
    192.168.28.1
    fe80:0:0:0:c1dd:f581:1222:fd2a%eth0?? (ipv6地址)

    ?

    總結

    以上是生活随笔為你收集整理的internet地址java表示的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。