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;
            }
 
        
        } 
    }
}

执行结果:

相关文章
相关标签/搜索