源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java网络编程之识别示例 获取主机网络接口列表

  • 时间:2022-06-28 19:26 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java网络编程之识别示例 获取主机网络接口列表
[b]获取主机地址信息[/b] 在Java中我们使用InetAddress类来代表目标网络地址,包括主机名和数字类型的地址信息,并且InetAddress的实例是不可变的,每个实例始终指向一个地址。InetAddress类包含两个子类,分别对应两个IP地址的版本:
[u]复制代码[/u] 代码如下:
Inet4Address Inet6Address
我们通过前面的笔记可以知道:IP地址实际上是分配给主机与网络之间的连接,而不是主机本身,NetworkInterface类提供了访问主机所有接口的信息的功能。下面我们通过一个简单的示例程序来学习如何获取网络主机的地址信息:
[u]复制代码[/u] 代码如下:
importjava.net.*; importjava.util.Enumeration; publicclassInetAddressExample{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub try{ //获取主机网络接口列表 Enumeration<NetworkInterface>interfaceList=NetworkInterface .getNetworkInterfaces(); //检测接口列表是否为空,即使主机没有任何其他网络连接,回环接口(loopback)也应该是存在的 if(interfaceList==null){ System.out.println("--没有发现接口--"); }else{ while(interfaceList.hasMoreElements()){ //获取并打印每个接口的地址 NetworkInterfaceiface=interfaceList.nextElement(); //打印接口名称 System.out.println("Interface"+iface.getName()+";"); //获取与接口相关联的地址 Enumeration<InetAddress>addressList=iface .getInetAddresses(); //是否为空 if(!addressList.hasMoreElements()){ System.out.println("\t(没有这个接口相关的地址)"); } //列表的迭代,打印出每个地址 while(addressList.hasMoreElements()){ InetAddressaddress=addressList.nextElement(); System.out .print("\tAddress" +((addressinstanceofInet4Address?"(v4)" :addressinstanceofInet6Address?"v6" :"(?)"))); System.out.println(":"+address.getHostAddress()); } } } }catch(SocketExceptionse){ System.out.println("获取网络接口错误:"+se.getMessage()); } //获取从命令行输入的每个参数所对应的主机名和地址,迭代列表并打印 for(Stringhost:args){ try{ System.out.println(host+":"); InetAddress[]addressList=InetAddress.getAllByName(host); for(InetAddressaddress:addressList){ System.out.println("\t"+address.getHostName()+"/" +address.getHostAddress()); } }catch(UnknownHostExceptione){ System.out.println("\t无法找到地址:"+host); } } } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部