/**
*
*/
/**
* @author Administrator
*
*/
public class test {
//String ipList[];
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String ipString = "192.168.2.11";
String endipString = "192.168.3.1";
String stepIpString = "0.0.1.0";
int count = 10;
System.out.println("按起始地址:\n");
//String[] ipList=GetIPList(ipString, endipString);
System.out.println("按步长地址:\n");
String[] IpList = GetIPListByStep(ipString, stepIpString, count);
// long convertip = convertIP(ipString);
// System.out.println("convertIp = " + convertip);
}
/**
* 把形如127.0.0.1的IP地址转换成一个long值
*
* @param ipAddress
* String
* @return long
*/
private static long convertIP(String ipAddress) {
long rtn = 0;
String[] ss = ipAddress.split("\\.");
for (int i = 0; i < ss.length; i++) {
rtn <<= 8;
rtn += Long.parseLong(ss[i]);
}
for (int i = ss.length; i < 4; i++) {
rtn <<= 8;
}
return rtn;
}
/*
* 按给定步长求ip地址组;
*/
private static String[] GetIPListByStep(String beginip, String stepIP, int count) {
try {
long long_beginip = Long.MIN_VALUE;
long long_stepip;
// 转换成long值
long_beginip = convertIP(beginip);
long_stepip = convertIP(stepIP);
// 求解范围之内的IP地址
long[] long_ip = new long[count];
long ip = long_beginip;
long_ip[0] = long_beginip;
for (int k = 1; k < count; k++) {
ip = ip - long_stepip;
long_ip[k] = ip;
}
// 转换成字符串
String[] strip = new String[4];
String[] ipList = new String[long_ip.length];
for (int m = 0; m < long_ip.length; m++) {
strip[0] = String.valueOf(long_ip[m] & 0x00000000000000ff);
strip[1] = String.valueOf(long_ip[m] >> 8 & 0x00000000000000ff);
strip[2] = String
.valueOf(long_ip[m] >> 16 & 0x00000000000000ff);
strip[3] = String
.valueOf(long_ip[m] >> 24 & 0x00000000000000ff);
ipList[m] = strip[3] + "." + strip[2] + "." + strip[1] + "."
+ strip[0];
System.out.println("m = "+ m+ ":ip = "+ipList[m]);
}
return ipList;
} catch (Exception exp) {
exp.printStackTrace();
}
return null;
}
/*
* 求ip地址
*/
private static String[] GetIPList(String beginip, String endip) {
try {
long long_beginip = Long.MIN_VALUE;
long long_endip = Long.MIN_VALUE;
// 转换成long值
long_beginip = convertIP(beginip);
long_endip = convertIP(endip);
// 求解范围之内的IP地址
long[] long_ip = new long[(int) Math.abs(long_beginip - long_endip) + 1];
for (int k = 0; k <= Math.abs(long_beginip - long_endip); k++) {
if (long_beginip - long_endip < 0) {
long_ip[k] = long_beginip + (long) k;
} else {
long_ip[k] = long_endip + (long) k;
}
}
// 转换成字符串
String[] strip = new String[4];
String[] ipList = new String[long_ip.length];
for (int m = 0; m < long_ip.length; m++) {
strip[0] = String.valueOf(long_ip[m] & 0x00000000000000ff);
strip[1] = String.valueOf(long_ip[m] >> 8 & 0x00000000000000ff);
strip[2] = String
.valueOf(long_ip[m] >> 16 & 0x00000000000000ff);
strip[3] = String
.valueOf(long_ip[m] >> 24 & 0x00000000000000ff);
ipList[m] = strip[3] + "." + strip[2] + "." + strip[1] + "."
+ strip[0];
System.out.println("m = "+ m+ ":ip = "+ipList[m]);
}
return ipList;
} catch (Exception exp) {
exp.printStackTrace();
}
return null;
}
}
分享到:
相关推荐
这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至关重要。 首先,让我们详细了解一下`IpUtils`这个工具类。在Java中,获取IP...
综上所述,解决IP地址冲突的方法包括采用自动获取IP地址的方式、配置DHCP服务器分配固定IP地址、开启IP-MAC绑定策略等。这些方法能够有效地预防和解决公司网络中的IP地址冲突问题,保障网络的稳定运行。对于网络管理...
在探讨非请求方式获取IP地址的方法时,我们主要关注的是如何在不借助HTTP请求或套接字编程的情况下,实现对本地计算机IP地址的有效提取。本文将深入解析代码示例中的方法,并详细介绍其背后的原理和技术要点。 ### ...
这种方式适用于家庭用户等不需要固定IP地址的场合。 #### 公有与私有IP地址 - **公有IP地址**:是全球唯一的IP地址,可以在互联网上直接被其他计算机访问。这些地址通常由InterNIC或其他区域性的IP地址分配机构进行...
2. **查看IP地址**:在Windows系统中,可以通过以下方式查看IP地址: - 打开命令提示符(cmd),输入`ipconfig`命令,系统会列出所有网络接口的IP信息。 - 在网络设置中,右键点击“网络图标”(通常在任务栏或右...
而"全球IP地址"可能是实际包含IP地址数据的文件,可能是Excel格式,也可能经过其他方式处理,如CSV或纯文本格式。 关于IP地址的知识点,我们可以探讨以下几个方面: 1. **IP地址结构**:IP地址通常由32位组成...
然而,在使用 DHCP 方式获取 IP 地址时,可能会出现 IP 地址更新失败的情况,导致网络中断。因此,本文将介绍在 WIN98 和 WIN2000(含 XP)操作系统下如何手动更新 IP 地址。 一、DHCP 概念 DHCP 是一个应用层协议...
这个主题聚焦在如何在PowerBuilder(PB9)中通过纯代码的方式获取本机的IP地址和MAC地址。IP地址是网络上设备的唯一标识,而MAC地址是物理网络接口控制器的唯一硬件地址。下面我们将深入探讨如何实现这一功能。 ...
"JQuery插件 IP地址输入框"就是为了解决这个问题而设计的,它允许用户在输入框中便捷地输入IP地址,并能自动进行格式化和有效性检查。 该插件特别指出目前仅支持Firefox浏览器,这可能是因为其CSS样式在其他浏览器...
不过,这种方式并不推荐,因为IP地址通常不会直接保存在注册表中,而是通过网络接口配置动态获取。 四、netsh命令行工具 修改Windows的IP地址最常用的方法是使用netsh命令行工具。例如,要设置IPv4地址,可以执行...
在这个IP地址库中,txt文件可能包含IP地址列表,方便在没有数据库环境时查看和处理。 5. **Excel文件**:Excel是Microsoft Office套件中的电子表格软件,常用于数据整理、计算和图表展示。IP地址库的Excel版本可能...
在实际操作时,一定要参考对应PLC的编程手册和网络通信指南,确保正确无误地读取和处理IP地址信息。 通过以上方法,我们可以有效地读取PLC的IP地址,为实现远程监控、数据采集或自动化控制提供基础。理解并掌握这些...
6. **IP地址映射表**:在处理IP地址时,可能会使用映射表来关联IP地址与特定的网络接口、主机名或其他信息。这种映射有助于管理和理解网络连接。 7. **源码分析**:易语言取本机所有IP地址的源码通常会包括以下几个...
在Windows操作系统中,用户可以通过命令行工具如cmd或PowerShell来更改IP地址,但通过编程方式可以实现自动化和定制化的IP管理。 易语言提供了一系列的网络编程接口,允许开发者访问和操作网络设备。在“更改IP地址...
"局域网IP地址查询"这款小巧的网络工具,就是为了解决这一需求而设计的。 首先,我们要理解什么是IP地址。IP地址(Internet Protocol Address)是互联网上的每个设备的唯一标识,类似于我们的家庭住址。在局域网中...
在IT领域,网络通信是不可或缺的一部分,而了解和获取设备的IP地址则至关重要。特别是对于在局域网(内网)环境中工作的系统来说,知晓内网IP地址有助于进行设备间的通信和网络配置。以下是三种获取内网IP地址的方法...
ARP 协议就是为了解决这一问题,它采用广播方式,当需要知道某个 IP 地址对应的 MAC 地址时,会发送一个 ARP 请求报文,报文中包含目标 IP 地址,所有收到这个请求的设备都会检查是否自己的 IP 地址与请求的目标 IP ...
本教学简案旨在帮助学生理解和掌握IP地址的基础知识,包括其格式、分类以及管理方式。 首先,IP地址是Internet Protocol(IP)地址的简称,是一个32位的二进制数,通常以点分十进制的形式呈现,如202.112.81.34。...
在Delphi编程环境中,处理网络通信时,我们经常需要将IP地址与数字(通常为32位整型)地址之间进行转换。IP地址是互联网上设备的标识,它以点分十进制的形式呈现,例如 "192.168.1.1"。而数字地址则是IP地址的另一种...