`
yang_min
  • 浏览: 342202 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java实现获取本机上ADSL的IP

阅读更多
import java.net.*;
public class GetIp {

 public static int isInnerIP(long a_ip)//检查ip地址是否是内网ip
 {
  int bValid = -1;
  if ((a_ip >> 24 == 0xa) || (a_ip >> 16 == 0xc0a8) || (a_ip >> 22 == 0x2b0))
  {
   bValid = 0;
  }
  return bValid;
 }
 
 // 将127.0.0.1 形式的IP地址转换成10进制整数,这里没有进行任何错误处理
 public static long ipToLong(String strIP)
 {
  long[] ip = new long[4];
  //先找到IP地址字符串中.的位置
  int position1 = strIP.indexOf(".");
  int position2 = strIP.indexOf(".", position1 + 1);
  int position3 = strIP.indexOf(".", position2 + 1);
  //将每个.之间的字符串转换成整型
  ip[0] = Long.parseLong(strIP.substring(0, position1));
  ip[1] = Long.parseLong(strIP.substring(position1 + 1, position2));
  ip[2] = Long.parseLong(strIP.substring(position2 + 1, position3));
  ip[3] = Long.parseLong(strIP.substring(position3 + 1));
  return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
 }
 
 public static void main(String[] args) {
  String ip;
  try
  {
   InetAddress in = InetAddress.getLocalHost();
   InetAddress[] all = InetAddress.getAllByName(in.getHostName());
   //通过本机主机名,遍历多个ip   
   for (int i = 0; i < all.length; i++)
   {
    String tmp=null;
    tmp=ip=all[i].getHostAddress().toString();
    System.out.println("IP =  " +tmp);//输出计算机所有的ip地址
    if (isInnerIP(ipToLong(tmp)) == -1)//检查是不是外网ip,如果是就保存文件
    {
     /*WriteFile(ip);//将ip地址写入文件
     System.out.println("IP保存在同目录IP.txt文件中");

     System.out.println("同目录IP.txt文件中的IP是:" + ReadFile());*/
     System.out.println(ip);
     
    }
   }
  }
  catch (UnknownHostException e)
  {
   System.out.println(e.getMessage());
  }
 }
}
分享到:
评论
2 楼 phoenixfu 2010-01-22  
受教了!!!!谢谢!!
1 楼 tuoxie007 2009-02-02  
哇。。。
if ((a_ip >> 24 == 0xa) || (a_ip >> 16 == 0xc0a8) || (a_ip >> 22 == 0x2b0)) 

bValid = 0; 
}

这什么原理啊

相关推荐

    获取主机拨号IP地址

    - 在Python中,可以使用`socket`库来获取本机IP,例如: ```python import socket ip = socket.gethostbyname(socket.gethostname()) ``` - Java中,可以使用`InetAddress`类获取IP地址: ```java import ...

    基于Android智能手机的卫星地面站远程监视系统的实现.pdf

    在Android客户端上,则需要实现对服务器端数据的获取、处理和显示。 知识点五:串口服务器的使用 串口服务器是一种协议转换设备,它可以实现RS-232、RS-422、RS-485等串行通信口与以太网之间的数据转换。通过串口...

    Android2.doc

    值得注意的是,由于大多数家用网络采用的是动态IP分配(ADSL),因此每次重启后本机的IP地址可能会发生变化。 另外,端口号应当与emulator所使用的端口一致,常见的端口号为5554或5556。如果使用了其他端口号,则...

    网络摄像机中文说明书-iPcamera网络视频服务器网络.docx

    在路由器的“虚拟服务器”设置中,将这两个端口映射到摄像机的IP地址上。如果端口不是默认的80,而是Y(1-65534之间的值),访问摄像机时应在IE地址栏输入`http://IP:Y`。 5. **动态域名解析**:为方便远程访问,...

    win7系统下两台笔记本用一条网线共享上网的设置方法

    - 修改IP地址:在另一台笔记本上,同样进入网络和共享中心,打开“管理无线网络”,选择适配器属性,然后修改IP地址为`192.168.3.xx`,其中`xx`是任意数字(0-255,除1外),默认网关设置为主笔记本的IP地址`192....

    vmware虚拟机下hadoop集群安装过程.docx

    通过在一台高性能电脑上安装VMware,创建多个虚拟机,构建一个内部局域网,再分别在这些虚拟机上安装Linux、Java和Hadoop,就能形成一个简单的Hadoop研究系统。这样的程序在虚拟机上开发和测试后,可以直接移植到...

    QT编写的路由拨号器

    此外,QT还提供了QTcpSocket和QUdpSocket等类,用于低级别的TCP/IP和UDP通信,这对于实现路由拨号是至关重要的。 路由拨号通常是指通过路由器连接到互联网的过程,这涉及到PPP(Point-to-Point Protocol)或者PPPoE...

    echo:分布式代理ip共享系统

    Echo支持代理IP统一的管理,所以可以作为ADSL拨号的服务资源的统一管理出口。使用ADSl使用统一的,稳定的IP出口提供代理服务(而不需要沉重的redis负担) Echo支持sdk,目前提供完善的android APK和gradle依赖(这...

    计算机基础计算机基础计算机基础

    计算机基础知识点总结 本资源摘要信息涵盖了计算机基础方面的知识点,包括计算机硬件、软件、网络协议、互联网应用、计算机网络、计算机语言等多个...* 一台 PC 机中允许安装的内存最大容量是由主板上的芯片组决定的

    Ubuntu命令技巧.pdf

    - 使用 `dhclient &lt;interface&gt;` 命令重新获取IP地址。 **6.19 下载网站文档** - 使用 `wget -r -p -k -np -nd &lt;url&gt;` 命令递归下载网站文档。 **6.20 如何多线程下载** - 使用 `axel -n 4 &lt;url&gt;` 命令进行多线程...

    专转本计算机基础辅导填空练习题.doc

    它是关于电子化图书、期刊和其他在线资源的管理和提供的概念,旨在实现信息的数字化存储和检索。 2. "二进制编码的十进制整数"简称为 **BCD整数**,它使用 **4** 位二进位表示一个十进制数字。BCD(Binary-Coded ...

    计算机一级B考试真题3套试题.pdf

    6. 图像输入设备:常见的图像输入设备包括数码相机、扫描仪和数字摄像机,用于获取图像信息。 7. 数制转换:在不同的数制之间进行转换时,要注意数值的正确对应。例如,八进制数13657转换为二进制是1011110101111,...

    资料九春江苏计算机一级B考试真题套试题.pdf

    15. IP地址分配问题:通过代理服务器和动态IP分配,可以解决IP地址不足的问题,让多台计算机共享有限的IP地址。 16. 内存与外存区别:本质区别在于内存是临时存储,断电数据丢失;外存持久存储,断电数据保留。 17...

    计算机一级考试模拟填空题.pdf

    12. ADSL的下载速度通常比上传速度快,是一种常见的宽带接入技术。 13. C++是面向对象的编程语言,具有高性能和与C语言的兼容性。 14. 大容量的Cache能提高访问命中率,从而提升CPU速度。 15. CD-ROM使用激光读取...

    2012年计算机应用类专业对口招生考试4月月考试题2.pdf

    2. 计算机类型及性能:提到了不同类型的计算机,如巨型机(Supercomputer)、小型机(Minicomputer)、个人计算机(PC)、微计算机(Microcomputer),要求考生能够区分这些计算机类型的性能差异及应用场合。...

    计算机一级填空选择题及答案.pdf

    19. 网络接入技术:ADSL(非对称数字用户线)是一种数字订阅线路,用于宽带上网。ISDN(综合业务数字网)是另一种早期的网络接入技术。 20. Web相关技术:HTML(超文本标记语言)是用于创建网页的标准标记语言。CSS...

    上海市计算机一级考试理论部分上.pdf

    7. 计算机网络协议:在文档中出现了IP(互联网协议),这是用于在互联网上进行数据传输的协议。此外,还提到了FTP(文件传输协议),这是一种用于在网络上进行文件传输的标准协议。 8. 编程语言:文件中出现了C++、...

Global site tag (gtag.js) - Google Analytics