获取本机所有IP地址的方法

原创 2004年09月30日 15:16:00

获取本机所有IP地址的方法
    java.net包中的IP地址类InetAddress提供了可以获取本机IP地址的方法getLocalHost(),但是通过该方法只能获得第一个网络设备的IP地址。但是InetAddress提供了getAllByName(String host),可以通过主机名获取所有IP地址。下面就是获取本机所有IP地址的源码。

/*
 * NetTools.java
 * Created on 2004-9-29
 * Copyright:
 */
import java.net.InetAddress;

/**
 * @author yanpeng
 *
 * 
 */
public class NetTools {

 public static String getLocalHostIP(){
  String ip;
  try{
   InetAddress addr = InetAddress.getLocalHost();
   ip = addr.getHostAddress();
  }
  catch(Exception ex){
   ip = "";
  }
  return ip;
 }
 
 public static String getLocalHostName(){
  String hostName;
  try{
   InetAddress addr = InetAddress.getLocalHost();
   hostName = addr.getHostName();
  }
  catch(Exception ex){
   hostName = "";
  }
  return hostName;
 }
 
 public static String[] getAllLocalHostIP(){
  String[] ret = null;
  try{
   String hostName = getLocalHostName();
   if(hostName.length()>0){
    InetAddress[] addrs = InetAddress.getAllByName(hostName);
    if(addrs.length>0){
     ret = new String[addrs.length];
     for(int i=0 ; i< addrs.length ; i++){
      ret[i] = addrs[i].getHostAddress();
     }
    }
   }
   
  }
  catch(Exception ex){
   ret = null;
  }
  return ret;
 }

 public static String[] getAllHostIPByName(String hostName){
  String[] ret = null;
  try{
   if(hostName.length()>0){
    InetAddress[] addrs = InetAddress.getAllByName(hostName);
    if(addrs.length>0){
     ret = new String[addrs.length];
     for(int i=0 ; i< addrs.length ; i++){
      ret[i] = addrs[i].getHostAddress();
     }
    }
   }
   
  }
  catch(Exception ex){
   ret = null;
  }
  return ret;
 }
 
 
 public static void main(String[] args) {
  //System.out.println(getLocalHostIP());
  System.out.println("主机名:" + getLocalHostName());
  
  String[] localIP = getAllLocalHostIP();
  for(int i=0 ; i<localIP.length ; i++){
   System.out.println( localIP[i]);
  }
 }
}

如何用C语言获得本机IP地址?(获取一个ip或者获取所有ip)

我们可以在cmd中敲入ipconfig来获取本机ip地址,下面写个程序来获取本机ip地址(结果相同): #include #include #pragma comment(lib,"ws2_32.li...
  • stpeace
  • stpeace
  • 2013年09月30日 00:07
  • 21115

获取本机名及IP地址

Java网络编程初始,通过JDK中API的调用实现输出本地主机的主机名及IP地址。 所用API:java.net.InetAddress Host类,为静态内部类,调用API测试 package...
  • J_Anson
  • J_Anson
  • 2016年07月15日 15:44
  • 801

C语言获取本机IP地址

  • 2016年11月30日 11:53
  • 1KB
  • 下载

Java 获取本机的ip和主机名

今天闲着没事儿,上网查了一下怎样在Java中获取本机的ip和主机名。 主要用到了java.net包下的InetAddress类,这个类就是对ip地址的抽象。 程序如下: Java代码  ...
  • My_de_Dream
  • My_de_Dream
  • 2014年05月16日 14:32
  • 1834

Java:获取本机所有IP地址,内网IP

获取IP地址Java代码如下:import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInt...
  • jiecxy
  • jiecxy
  • 2017年03月13日 15:06
  • 1541

Linux C语言 获取本机(所有网卡)IP地址(IPV4)

1、根据ioctl机制打印当前所有网卡 代码: #include #include #include #include #include #...
  • yangguangmeng
  • yangguangmeng
  • 2014年04月28日 18:38
  • 3585

JAVA 获取本机全部网络接口的全部IP地址

网上很多通过java获取本机ip地址的代码不是仅能在windows下运行,就是在linux下取得信息不足 由于linux的特殊性,通过InetAddresse类获取LocalHost的地址一直为/et...
  • daniel_h1986
  • daniel_h1986
  • 2009年07月15日 14:12
  • 6382

在ACE中如何获得本地的ip地址

#include "ace/INET_Addr.h" void print_all_interfaces() { ACE_INET_Addr *the_addr_array; size_t cou...
  • u011676589
  • u011676589
  • 2014年04月03日 12:55
  • 1068

C++编程获取本机所有ip地址 gethostbyname

一个小程序,可以获取本地所有ip地址,包括有线,无线,虚拟机,环回接口网卡,等。 如图,一台机器多个网卡: 程序执行结果: #include"stdio.h" #includ...
  • you_xian
  • you_xian
  • 2013年10月12日 23:13
  • 9168

Python获取本机所有IP地址

import socket# 查看当前主机名 print('当前主机名称为 : ' + socket.gethostname())# 根据主机名称获取当前IP print('当前主机的IP为: ' +...
  • qq_878799579
  • qq_878799579
  • 2017年07月03日 09:10
  • 3544
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取本机所有IP地址的方法
举报原因:
原因补充:

(最多只允许输入30个字)