黑马程序员技术交流社区

标题: 网络编程 [打印本页]

作者: 珊湖礁    时间: 2013-12-4 22:41
标题: 网络编程
本帖最后由 珊湖礁 于 2013-12-5 14:24 编辑

怎样编一个程序,将本地计算机所有网络接口的信息打印出来?(要显示每个接口名称、是否支持多点传送、物理地址、ip地址)

作者: 王家胜    时间: 2013-12-5 12:36
  1. import java.net.InetAddress;
  2. import java.net.InterfaceAddress;
  3. import java.net.NetworkInterface;
  4. import java.util.List;


  5. public class F {
  6. public static void main(String[] args) throws Exception

  7. {
  8.                 InetAddress ia=InetAddress.getLocalHost();
  9.                 NetworkInterface ni=NetworkInterface.getByInetAddress(ia);
  10.                 List<InterfaceAddress> list=ni.getInterfaceAddresses();;
  11.                 for(int i=0;i<list.size();i++)
  12.                 {
  13.                         InterfaceAddress ifa=list.get(i);
  14.                         InetAddress f=ifa.getAddress();
  15.                         System.out.println(f.getHostAddress());
  16.                 }
  17. }
  18. }
复制代码

作者: 王家胜    时间: 2013-12-5 13:09
  1. import java.net.InetAddress;
  2. import java.net.NetworkInterface;
  3. import java.util.Enumeration;


  4. public class F {
  5. public static void main(String[] args) throws Exception

  6. {
  7.                 Enumeration<NetworkInterface> ni=NetworkInterface.getNetworkInterfaces();
  8.                 while(ni.hasMoreElements())
  9.                 {
  10.                         NetworkInterface list=ni.nextElement();
  11.                         Enumeration<InetAddress> ia=list.getInetAddresses();
  12.                         while(ia.hasMoreElements())
  13.                         {
  14.                                 InetAddress ias=ia.nextElement();
  15.                                 NetworkInterface n=NetworkInterface.getByInetAddress(ias);
  16.                                 if(ias.getHostName()!=null&&!"".equalsIgnoreCase(ias.getHostName())&&ias.getHostAddress()!=null&&!"".equalsIgnoreCase(ias.getHostAddress())&&list.getName()!=null&&!"".equalsIgnoreCase(list.getName())&&list.getDisplayName()!=null&&!"".equalsIgnoreCase(list.getDisplayName()))
  17.                                 {
  18.                                         System.out.print(list.getName());
  19.                                         System.out.println("\t网卡名字:\t"+list.getDisplayName());
  20.                                         System.out.print("\t\t"+ias.getHostName());
  21.                                         System.out.println("\t"+ias.getHostAddress());
  22.                                         System.out.println("------------------------------");
  23.                                 }
  24.                         }
  25.                 }
  26. }
  27. }
复制代码

这是完整答案,没听说过多点传送,只听说过点对点传送




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2