1. 程式人生 > >Java網絡編程InetAddress類

Java網絡編程InetAddress類

形式 字面值 ack catch package ktr clas 常用 .net

InetAddress用來代表IP地址。一個InetAdress的對象就代表著一個IP地址,

  • getByName(String host):在給定主機名的情況下確定主機的 IP 地址,主機名可以是機器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。如果提供字面值 IP 地址,則僅檢查地址格式的有效性
  • getHostName(): 獲取此 IP 地址的主機名
  • getHostAddress():返回 IP 地址字符串(以文本表現形式)
  • getLocalHost(): 返回本地主機

InetAddress對象的獲取

InetAddress的構造函數不是公開的(public),所以需要通過它提供的靜態方法來獲取:

  • static InetAddress[] getAllByName(String host)
  • static InetAddress getByAddress(byte[] addr)
  • static InetAddress getByAddress(String host,byte[] addr)
  • static InetAddress getByName(String host)
  • static InetAddress getLocalHost()

註意:在這些靜態方法中,最為常用的應該是getByName(String host)方法,只需要傳入目標主機的名字,InetAddress會嘗試做連接DNS服務器,並且獲取IP地址的操作

package com.yyx.test;

import java.net.InetAddress;

public class TestInetAddress {
    public static void main(String[] args) {
        InetAddress inetAddress = null;
        InetAddress iAddress=null;
        try {
            inetAddress = InetAddress.getByName("www.baidu.com");
            System.out.println(inetAddress);
            System.out.println(inetAddress.getHostAddress());
            System.out.println(inetAddress.getHostName());
            
            System.out.println(
"============================="); iAddress=InetAddress.getLocalHost(); System.out.println(iAddress); System.out.println(iAddress.getHostAddress()); System.out.println(iAddress.getHostName()); } catch (Exception e) { e.printStackTrace(); } } }
運行結果:

www.baidu.com/61.135.169.125
61.135.169.125
www.baidu.com
=============================
DESKTOP-F4P6SPK/192.168.1.107
192.168.1.107
DESKTOP-F4P6SPK

Java網絡編程InetAddress類