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());
}
}
}
分享到:
相关推荐
- 在Python中,可以使用`socket`库来获取本机IP,例如: ```python import socket ip = socket.gethostbyname(socket.gethostname()) ``` - Java中,可以使用`InetAddress`类获取IP地址: ```java import ...
在Android客户端上,则需要实现对服务器端数据的获取、处理和显示。 知识点五:串口服务器的使用 串口服务器是一种协议转换设备,它可以实现RS-232、RS-422、RS-485等串行通信口与以太网之间的数据转换。通过串口...
值得注意的是,由于大多数家用网络采用的是动态IP分配(ADSL),因此每次重启后本机的IP地址可能会发生变化。 另外,端口号应当与emulator所使用的端口一致,常见的端口号为5554或5556。如果使用了其他端口号,则...
在路由器的“虚拟服务器”设置中,将这两个端口映射到摄像机的IP地址上。如果端口不是默认的80,而是Y(1-65534之间的值),访问摄像机时应在IE地址栏输入`http://IP:Y`。 5. **动态域名解析**:为方便远程访问,...
- 修改IP地址:在另一台笔记本上,同样进入网络和共享中心,打开“管理无线网络”,选择适配器属性,然后修改IP地址为`192.168.3.xx`,其中`xx`是任意数字(0-255,除1外),默认网关设置为主笔记本的IP地址`192....
通过在一台高性能电脑上安装VMware,创建多个虚拟机,构建一个内部局域网,再分别在这些虚拟机上安装Linux、Java和Hadoop,就能形成一个简单的Hadoop研究系统。这样的程序在虚拟机上开发和测试后,可以直接移植到...
此外,QT还提供了QTcpSocket和QUdpSocket等类,用于低级别的TCP/IP和UDP通信,这对于实现路由拨号是至关重要的。 路由拨号通常是指通过路由器连接到互联网的过程,这涉及到PPP(Point-to-Point Protocol)或者PPPoE...
Echo支持代理IP统一的管理,所以可以作为ADSL拨号的服务资源的统一管理出口。使用ADSl使用统一的,稳定的IP出口提供代理服务(而不需要沉重的redis负担) Echo支持sdk,目前提供完善的android APK和gradle依赖(这...
计算机基础知识点总结 本资源摘要信息涵盖了计算机基础方面的知识点,包括计算机硬件、软件、网络协议、互联网应用、计算机网络、计算机语言等多个...* 一台 PC 机中允许安装的内存最大容量是由主板上的芯片组决定的
摄像机内置麦克风和扬声器,可以实现与远程电脑之间的实时双向通话。通过这一功能,用户不仅可以远程监听监控区域的声音,还能与监控区域内的人员进行交流,增加了监控的互动性。 为了应对动态IP变化的问题,无线...
- 使用 `dhclient <interface>` 命令重新获取IP地址。 **6.19 下载网站文档** - 使用 `wget -r -p -k -np -nd <url>` 命令递归下载网站文档。 **6.20 如何多线程下载** - 使用 `axel -n 4 <url>` 命令进行多线程...
它是关于电子化图书、期刊和其他在线资源的管理和提供的概念,旨在实现信息的数字化存储和检索。 2. "二进制编码的十进制整数"简称为 **BCD整数**,它使用 **4** 位二进位表示一个十进制数字。BCD(Binary-Coded ...
6. 图像输入设备:常见的图像输入设备包括数码相机、扫描仪和数字摄像机,用于获取图像信息。 7. 数制转换:在不同的数制之间进行转换时,要注意数值的正确对应。例如,八进制数13657转换为二进制是1011110101111,...
15. IP地址分配问题:通过代理服务器和动态IP分配,可以解决IP地址不足的问题,让多台计算机共享有限的IP地址。 16. 内存与外存区别:本质区别在于内存是临时存储,断电数据丢失;外存持久存储,断电数据保留。 17...
12. ADSL的下载速度通常比上传速度快,是一种常见的宽带接入技术。 13. C++是面向对象的编程语言,具有高性能和与C语言的兼容性。 14. 大容量的Cache能提高访问命中率,从而提升CPU速度。 15. CD-ROM使用激光读取...
2. 计算机类型及性能:提到了不同类型的计算机,如巨型机(Supercomputer)、小型机(Minicomputer)、个人计算机(PC)、微计算机(Microcomputer),要求考生能够区分这些计算机类型的性能差异及应用场合。...
19. 网络接入技术:ADSL(非对称数字用户线)是一种数字订阅线路,用于宽带上网。ISDN(综合业务数字网)是另一种早期的网络接入技术。 20. Web相关技术:HTML(超文本标记语言)是用于创建网页的标准标记语言。CSS...