怎样获得本机通过宽带上网的IP地址,每次用宽带上网,都有一个变化的IP地址,怎样通过编程动态获得IP地址 

解决方案 »

  1.   

    import java.net.*;
    public class GetIP
    {
    public static void main (String[] args) throws Exception
    {
    /*根据指定域名获取主机名*/
    InetAddress myIP1=InetAddress.getByName("www.microsoft.com");
    System.out.println(myIP1);
    InetAddress myIP2=InetAddress.getLocalHost();
    System.out.println(myIP2);
    /*获取主机IP地址和名称*/
    System.out.println(myIP1.getHostName());
    System.out.println(myIP1.getHostAddress());
    System.out.println(myIP2.getHostName());
    System.out.println(myIP2.getHostAddress());
    }
    }
      

  2.   

    我照你的 做了可显示我自己机器的IP地址是0.2.0.5,这根本不可能是我本机在internet上的IP地址啊1!
      

  3.   

    帮你查了一下,我用java给你写了个,没有几行, 只要调用jdk中的一个net包即可,可以得到更多的信息,如getAddress() 
    返回这个 InetAddress 对象的原始 IP 地址。 
    getAllByName(String) 
    给定主机名,确定该主机的所有 IP 地址。 
    getByName(String) 
    给定主机名,确定该主机的所有 IP 地址。
    原代码如下,我调试过了把我机器的主机名和ip都读出来了.
    import java.net.InetAddress;
    public class NetIpAddress{
    private InetAddress myHostIp=null;

    public InetAddress getMyHostIp(){
    try{
    myHostIp= InetAddress.getLocalHost();
    }catch(Exception ex){
    ex.printStackTrace();
    }
    return myHostIp;

    }
    public static void main(String[] args){
    NetIpAddress ip=new NetIpAddress();
    System.out.print(ip.getMyHostIp());
    }
    }
      

  4.   

    import java.net.InetAddress;
    public class GetLocalIp {
     
     public static String getLocalHostIP(){
      String ret = "";
      try{
       InetAddress addr = InetAddress.getLocalHost();
        String hostName = addr.getHostName();
        if(hostName.length()>0){
         InetAddress[] addrs = InetAddress.getAllByName(hostName);
          ret = addrs[1].getHostAddress();
        }
      }
      catch(Exception ex){
       ret = null;
      }
      return ret;
     } 
     public static void main(String[] args) {
       System.out.println(  getLocalHostIP());
      
     }
    }可以得到互联网的IP
      

  5.   

    ebinge323() 的程序不错,挺好用的
    支持!!
      

  6.   

    不错,不错,呵呵,我要努力,有一点john_sheep
    ret = addrs[1].getHostAddress();写成addrs[0].
    你写的是不是得到网络上所有主机名字为hostname的机器ip地址啊.我想问下这个网络上是局域网范围吗?