JavaSE 基础之InetAddress类

来源:互联网 发布:js utf 8编码转换器 编辑:程序博客网 时间:2024/05/16 16:56

Java基础之InetAddress类

科普:1、顶级域名:(1) 国家顶级域名:cn、us、jp……            (2) 国际通用(iTDs   ):    工商企业:com                                        网络提供商:net                                        非赢利组织:org                                        firm:(公司单位)                                        store:(销售公司或者企业)                                        web:突出www活动单位                                        arts:突出文化、娱乐活动的单位                                        rec:突出消遣、娱乐活动的单位                                        info:提供信息服务单位

InetAddress 类

1、有一个构造函数,但不能通过该构造方法传递参数。通常称该类没有构造方法
InetAdress ia = InetAdress.getByName(host);

2、只能通过其成员方法来生成对象。
getLocalHost():==得到描述本地主机localhost的InetAddress对象==
getByName():==通过指定计算机名、域名得到InetAddress 对象==
getAllByName(): ==从DNS上得到该域名对应的所有IP地址。将返回一个InetAddress[]==
getByAddress(): ==通过IP地址创建InetAddress 对象。提供的IP地址必须是byte[] ,只是构造一个 InetAddress对象,不会验证正确与否==
getHostName():==获得主机名==
getAddress(): 获得字节数组形式的IP地址

3、需要使用try-catch-finally 捕捉异常

import java.net.* ;   // 用于网络编程-----引用 net 库import java.util.*;class demo_01{/** * 通过getLocalHost方法获得本地信息, * 输出主机名称和IP地址  */public static void main(String[]  args){    try{        /**获取 InetAddress 对象*/        InetAddress ia = InetAddress.getLocalHost();        System.out.println("ia:"+ia+"------------");/**获取该对象的名称*/         System.out.println("ia.getHostName:"+ia.getHostName()+"------------");/**获取IP地址,并且转换成int型    在 JAVA 中需要注意数据类型的符号问题;    在JAVA中 byte 类型是有符号的。且JAVA未提供无符号的byte类型    表示范围 -128 ~ 127    通常 对于一些 I/O 处理程序需要考虑无符号问题,通常的做法是:    int unsignedByte = signByte >=0 ? signedByte : signByte+256;*/              byte[] ip = ia.getAddress();        for(int i=0;i<ip.length;i++ ){        int ips = (ip[i]>=0)?ip[i]:(ip[i]+256);//将byte 转换成 int        System.out.println("ia.getAddress:"+ia.getAddress()+"------------");         System.out.println(ips);        }    }catch(Exception e){    System.err.println("获取本地信息失败!"+e.toString());           }finally{    }}   }
import java.net.*;import java.util.*;class demo02_netWorkInterfaces{    /**获得本地所有的网卡信息。一台计算机至少有一个IPV4地址    * 即本地环回测试地址 127.0.0.1    */    public  static  void  main(String[] args){        /**构造 网络接口 类的枚举对象*/        Enumeration<NetworkInterface>  nif = null;        try{            nif = NetworkInterface.getNetworkInterfaces();            while(nif.hasMoreElements()){             NetworkInterface ni = nif.nextElement();            System.out.println("ni.getdisplayName===网卡:"+ ni.getDisplayName());             System.out.println("ni.getName===名称:"+ni.getName());            Enumeration<InetAddress> ips = ni.getInetAddresses();            while(ips.hasMoreElements()){                 System.out.println("IP:"+ips.nextElement().getHostAddress());            }        }       }catch(Exception e){    }finally{}    }}
import java.net.*;import java.util.*;import java.io.*;class demo03_CompInfo{/**获取主机信息---*/    public static void main(String[] args){    String host = "localhost";    try{        BufferedReader br = new BufferedReader(            new InputStreamReader(System.in));        System.out.println("输入网络地址:");        host = br.readLine();    }catch(Exception e){}    try{        InetAddress inet = InetAddress.getByName(host);        System.out.println("主机地址:"+inet.getHostAddress());        System.out.println("主机名称:"+inet.getHostName());        System.out.println("是否环回地址:"+inet.isLoopbackAddress());    }catch(Exception e){}    finally{}}}
原创粉丝点击