JavaSE 基础之InetAddress类

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

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值