`
vucko
  • 浏览: 14982 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ip地址处理方式

 
阅读更多
/**
 * 
 */



/**
 * @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地址工具类,java IP地址获取,java获取客户端IP地址

    这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至关重要。 首先,让我们详细了解一下`IpUtils`这个工具类。在Java中,获取IP...

    公司IP地址冲突怎么解决.pdf

    综上所述,解决IP地址冲突的方法包括采用自动获取IP地址的方式、配置DHCP服务器分配固定IP地址、开启IP-MAC绑定策略等。这些方法能够有效地预防和解决公司网络中的IP地址冲突问题,保障网络的稳定运行。对于网络管理...

    非request方式获取IP地址

    在探讨非请求方式获取IP地址的方法时,我们主要关注的是如何在不借助HTTP请求或套接字编程的情况下,实现对本地计算机IP地址的有效提取。本文将深入解析代码示例中的方法,并详细介绍其背后的原理和技术要点。 ### ...

    IP地址基础知识IP地址知识

    这种方式适用于家庭用户等不需要固定IP地址的场合。 #### 公有与私有IP地址 - **公有IP地址**:是全球唯一的IP地址,可以在互联网上直接被其他计算机访问。这些地址通常由InterNIC或其他区域性的IP地址分配机构进行...

    桌面显示IP地址

    2. **查看IP地址**:在Windows系统中,可以通过以下方式查看IP地址: - 打开命令提示符(cmd),输入`ipconfig`命令,系统会列出所有网络接口的IP信息。 - 在网络设置中,右键点击“网络图标”(通常在任务栏或右...

    全球IP地址 IP IP地址 IP地址大全

    而"全球IP地址"可能是实际包含IP地址数据的文件,可能是Excel格式,也可能经过其他方式处理,如CSV或纯文本格式。 关于IP地址的知识点,我们可以探讨以下几个方面: 1. **IP地址结构**:IP地址通常由32位组成...

    DHCP(动态获取IP地址)方式下IP地址手动更新方法

    然而,在使用 DHCP 方式获取 IP 地址时,可能会出现 IP 地址更新失败的情况,导致网络中断。因此,本文将介绍在 WIN98 和 WIN2000(含 XP)操作系统下如何手动更新 IP 地址。 一、DHCP 概念 DHCP 是一个应用层协议...

    pb中获得本机IP地址\MAC地址信息纯代码方式

    这个主题聚焦在如何在PowerBuilder(PB9)中通过纯代码的方式获取本机的IP地址和MAC地址。IP地址是网络上设备的唯一标识,而MAC地址是物理网络接口控制器的唯一硬件地址。下面我们将深入探讨如何实现这一功能。 ...

    JQuery插件 IP地址输入框

    "JQuery插件 IP地址输入框"就是为了解决这个问题而设计的,它允许用户在输入框中便捷地输入IP地址,并能自动进行格式化和有效性检查。 该插件特别指出目前仅支持Firefox浏览器,这可能是因为其CSS样式在其他浏览器...

    Windows 使用QT读取IP地址并修改IP地址

    不过,这种方式并不推荐,因为IP地址通常不会直接保存在注册表中,而是通过网络接口配置动态获取。 四、netsh命令行工具 修改Windows的IP地址最常用的方法是使用netsh命令行工具。例如,要设置IPv4地址,可以执行...

    IP地址库完整版.zip

    在这个IP地址库中,txt文件可能包含IP地址列表,方便在没有数据库环境时查看和处理。 5. **Excel文件**:Excel是Microsoft Office套件中的电子表格软件,常用于数据整理、计算和图表展示。IP地址库的Excel版本可能...

    读取PLC IP地址

    在实际操作时,一定要参考对应PLC的编程手册和网络通信指南,确保正确无误地读取和处理IP地址信息。 通过以上方法,我们可以有效地读取PLC的IP地址,为实现远程监控、数据采集或自动化控制提供基础。理解并掌握这些...

    易语言取本机所有IP地址

    6. **IP地址映射表**:在处理IP地址时,可能会使用映射表来关联IP地址与特定的网络接口、主机名或其他信息。这种映射有助于管理和理解网络连接。 7. **源码分析**:易语言取本机所有IP地址的源码通常会包括以下几个...

    易语言更改IP地址

    在Windows操作系统中,用户可以通过命令行工具如cmd或PowerShell来更改IP地址,但通过编程方式可以实现自动化和定制化的IP管理。 易语言提供了一系列的网络编程接口,允许开发者访问和操作网络设备。在“更改IP地址...

    局域网IP地址查询

    "局域网IP地址查询"这款小巧的网络工具,就是为了解决这一需求而设计的。 首先,我们要理解什么是IP地址。IP地址(Internet Protocol Address)是互联网上的每个设备的唯一标识,类似于我们的家庭住址。在局域网中...

    获取内网ip地址3种方法

    在IT领域,网络通信是不可或缺的一部分,而了解和获取设备的IP地址则至关重要。特别是对于在局域网(内网)环境中工作的系统来说,知晓内网IP地址有助于进行设备间的通信和网络配置。以下是三种获取内网IP地址的方法...

    获取IP地址与MAC地址对应关系实验报告1

    ARP 协议就是为了解决这一问题,它采用广播方式,当需要知道某个 IP 地址对应的 MAC 地址时,会发送一个 ARP 请求报文,报文中包含目标 IP 地址,所有收到这个请求的设备都会检查是否自己的 IP 地址与请求的目标 IP ...

    IP地址及其管理

    本教学简案旨在帮助学生理解和掌握IP地址的基础知识,包括其格式、分类以及管理方式。 首先,IP地址是Internet Protocol(IP)地址的简称,是一个32位的二进制数,通常以点分十进制的形式呈现,如202.112.81.34。...

    Delphi IP地址与数字地址互转

    在Delphi编程环境中,处理网络通信时,我们经常需要将IP地址与数字(通常为32位整型)地址之间进行转换。IP地址是互联网上设备的标识,它以点分十进制的形式呈现,例如 "192.168.1.1"。而数字地址则是IP地址的另一种...

Global site tag (gtag.js) - Google Analytics