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];
}
获取IP
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
// 将十进制整数形式转换成127.0.0.1形式的ip地址
public static String longToIP(long longIp) {
StringBuffer sb = new StringBuffer("");
// 直接右移24位
sb.append(String.valueOf((longIp >>> 24)));
sb.append(".");
// 将高8位置0,然后右移16位
sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));
sb.append(".");
// 将高16位置0,然后右移8位
sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));
sb.append(".");
// 将高24位置0
sb.append(String.valueOf((longIp & 0x000000FF)));
return sb.toString();
}
分享到:
相关推荐
ip转10进制
IP地址十进制转换主要是将一个点分十进制的IP地址转换为一个十进制的整数,反之亦然。例如,192.168.0.1这个IP地址在十进制表示下就是3232235521。这个过程涉及到对每个八位段的二进制表示进行转换,然后将它们相加...
进制转换是理解和操作这些数字的基础,无论是从任意进制转换到10进制,还是从10进制转换到其他任意进制,都是程序员日常工作中常见的任务。下面我们将详细探讨这些转换方法。 一、任意进制转换为10进制 1. 基础...
将十进制数字 10 转换为十六进制字符串,可以使用 Convert.ToString(10, 16) 方法。 实现进制转换的方法 下面是一个实现进制转换的方法: ```csharp public string ConvertString(string value, int fromBase, int...
js 实现的ip地址十进制与点分十进制转化 html文件 直接可以用
这样的转换对于查看和编辑计算机内存中的数据、理解网络协议(如IP地址和MAC地址)以及分析二进制文件内容都十分必要。 总的来说,掌握不同进制间的转换技巧是每一位IT从业者的基本功,无论是软件工程师、网络管理...
### IP十进制点分表示法转换为二进制 #### 知识点概述 在计算机网络中,IP地址是用于标识互联网上主机的一种逻辑地址。IPv4地址通常采用32位二进制数表示,为了便于人类阅读与书写,IPv4地址常以十进制点分表示法...
在计算机科学领域,数据通常以不同的进制表示,如二进制、八进制...掌握各种进制间的转换技巧,有助于理解和解决各种计算问题,特别是在处理二进制数据、网络协议(如IP地址、MAC地址)、编程语言中的整型数值等方面。
IP地址+进制转换
输入IP地址 程序运行 判断IP地址类别并转换为二进制
第二次将二进制IP转换为点分十进制字符串,并直接打印。 通过这段C++代码,我们可以方便地实现二进制IP地址到点分十进制IP地址的转换,这对于理解和处理网络数据很有帮助。在实际应用中,这样的功能可能用于网络...
在IT领域,尤其是在数据处理和网络通信中,十六进制(Hexadecimal)和IP地址的转换是常见的操作。本文将详细讲解"十六进制时间转化器和IP转化器"的相关知识点,以及它在实际工作中的应用。 首先,我们来探讨十六...
"03 IP地址 十进制和二进制关系"这个主题深入探讨了IP地址的构成及其与十进制和二进制之间的转换关系。下面将详细阐述相关知识点。 首先,IP地址全称为Internet Protocol Address,是Internet协议使用的地址,由32...
许多编程语言提供了内置函数来支持这种转换,比如在Python中,可以使用`hex()`函数将10进制转换为16进制,`int()`函数配合`base`参数可以将16进制转换回10进制。在C++或Java中,可以使用`std::stringstream`或`...
ip`是32位二进制表示的IP地址,`binary_to_ip`函数首先通过`split('.')`将二进制IP分割成四部分,然后对每一部分调用`bin_to_dec`函数将其转换为十进制,最后用点号连接四个十进制数,生成点分十进制的IP地址。...
进制转换在很多领域都有应用,如计算机网络中IP地址和端口号的表示,硬件电路设计中的逻辑门操作,编程中的颜色编码(RGB或十六进制),以及在加密算法和数据编码中。因此,掌握进制转换对于深入理解计算机系统和...
标题提到的"16进制10进制转换工具"是专门用于帮助用户在10进制和16进制之间进行转换的软件,这对于程序员和IT专业人员来说非常实用。描述中提到这个工具还包含了源代码,这为学习和理解进制转换的底层机制提供了机会...
这个压缩包文件“16进制转10进制例程”很可能包含了若干编程示例,展示了如何在不同编程语言中实现16进制到10进制的转换。通过学习和理解这些例程,开发者可以更好地掌握这个重要的概念,并在实际工作中灵活运用。
标题提到的“16进制转成10进制小软件”是一个专门用于将16进制数值转换为10进制数值的工具。16进制由0-9和A-F这16个符号组成,每个符号代表4位二进制,因此,它能够更高效地表示二进制数。例如,16进制的'F'相当于10...
### IP地址与十进制整数的转换 在计算机网络领域中,IP地址是设备在网络中的唯一标识。IPv4地址通常表示为四个十进制数字(每个数字范围为0到255)的形式,中间用点分隔开,如`192.168.1.1`。然而,在某些应用场景...