InetAddress

      最近有業務涉及到記錄網絡主機的地址,因此回顧一下java中InetAddress類的內容。         java

        InetAddress 類主要表示IP地址,這個類有兩個子類:Inet4Address、Inet6Address,一個用於表示IPV4,另外一個表示IPV6協議。c#

        IP地址通常在實際中看到的大部分IP地址都是以十進制的數據形式表示的,"192.168.1.2",IP地址格式:IP地址=網絡地址+主機地址,網絡號:用於識別主機所在的網絡,主機號:用於識別該網絡中的主機。網絡

        IP地址分爲五類,A類保留給政府機構,B類分配給中等規模的公司,C類分配給任何須要的人,D類用於組播,E類用於實驗,各種可容納的地址數目不一樣。測試

No.spa

地址分類.net

地址範圍code

1orm

A類地址對象

1.0.0.1~126.255.255.254ip

2

B類地址

128.0.0.1~191.255.255.254

3

C類地址

192.0.0.1~223.255.255.254

4

D類地址

224.0.0.1~239.255.255.254

5

E類地址

240.0.0.1~255.255.255.254

InetAddress類的經常使用方法:

No.

方法

類型

描述

1

public static InetAddress getByName(String host) throws UnknownHostException

普通

經過主機名稱獲得InetAddress對象

2

public static InetAddress getLocalHost() throws UnknownHostException

普通

經過本機獲得InetAddress對象

3

public String getHostName()

普通

獲得IP地址

4

public boolean isReachable(int timeout) throws IOException

普通

判斷地址是否可達,同時指定超時時間

測試InetAddress類:

import java.net.InetAddress;
public class InetAddressDemo {
	public static void main(String[] args) throws Exception { 
		InetAddress locAdd = null; 		// 聲明InetAddress對象
		InetAddress remAdd = null; 		// 聲明InetAddress對象
		locAdd = InetAddress.getLocalHost();	// 獲得本地InetAddress對象
		remAdd = InetAddress.getByName("www.baidu.com"); 	// 取得遠程InetAddress
		System.out.println("本機IP地址:" 
				+ locAdd.getHostAddress());// 獲得本地IP地址
		System.out.println("百度的IP地址:" 
				+ remAdd.getHostAddress());// 獲得遠程IP地址
		System.out.println("本機是否可達:" 
				+ locAdd.isReachable(5000));
	}
}

c#中得到本機ip:

        注意引用的是System.Net.NetworkInformation中的方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;


namespace ConsoleApplication1
{
    class Program
    {      
        static void Main(string[] args) 
        {
            try
            {                
                string _ComputerName = System.Net.Dns.GetHostName();
                Console.WriteLine("主機名是:" + _ComputerName);
                System.Net.IPAddress[] _IPList = System.Net.Dns.GetHostAddresses(_ComputerName);
                for (int i = 0; i != _IPList.Length; i++)
                {
                    //遍歷到當前本機的IP
                    if (_IPList[i].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                    {
                        _IPList[i].ToString();
                      Console.WriteLine("IP地址:"+_IPList[i]);
                }
                }
                Console.ReadLine();
                }
          
            catch(Exception e)
            {
                throw;
            }
 
        
        } 
    }
}

執行結果:

相關文章
相關標籤/搜索