gpt4 book ai didi

java - IP 地址转换为十进制,反之亦然

转载 作者:行者123 更新时间:2023-12-01 20:24:49 25 4
gpt4 key购买 nike

假设我的十进制数是9766322441,那么它对应的是70.30.65.9,但是当这个IP地址IC转换回来时,它给出了一些不同的十进制数1176387849... 当我转换 google.com 的 IP 地址时,即 64.233.187.99 然后它给出 1089059683 ,反向转换给出正确的 IP 地址,即 64.233.187.99 ...

我的问题是上面提到的数字有什么问题?我也尝试使用 9579342332 但结果相同。它给出了错误的反向转换??

这背后的原因是什么?

您可以使用this calculator用于计算。

最佳答案

您的值不正确,70.30.65.9 将与 1176387849 对应,但永远不会与 9766322441 对应。

32 位限制 - Java: how to convert dec to 32bit int?

将 IP 转换为十进制的 C++ 示例:

#include <iostream.h>

main()
{
// Initialize the variables
unsigned long a,b,c,d,base10IP;

// Get the IP address from user
cout << "\nEnter an IP address in dotted quad notation (x.x.x.x)";
cout << "\nwith each section seperated by a space: ";
cin >> a >> b >> c >> d;

// Do calculations to convert IP to base 10
a *= 16777216;
b *= 65536;
c *= 256;
base10IP = a + b + c + d;

// Output new IP address
cout << "\nThe converted address is: " << base10IP << '\n';
}

这是将IP转换为十进制的JAVA类:-
/**
* @author Charles Johnson
* from http://www.technojeeves.com/joomla/index.php/free/58-convert-ip-address-to-number
*/
public class IpConverter {
public static void main(String[] args) {
System.out.println(longToIp(Long.valueOf(args[0], 16)));
}

public static String toHex(String ipAddress) {
return Long.toHexString(IpConverter.ipToLong(ipAddress));
}

public static long ipToLong(String ipAddress) {
long result = 0;
String[] atoms = ipAddress.split("\\.");

for (int i = 3; i >= 0; i--) {
result |= (Long.parseLong(atoms[3 - i]) << (i * 8));
}

return result & 0xFFFFFFFF;
}

public static String longToIp(long ip) {
StringBuilder sb = new StringBuilder(15);

for (int i = 0; i < 4; i++) {
sb.insert(0, Long.toString(ip & 0xff));

if (i < 3) {
sb.insert(0, '.');
}

ip >>= 8;
}

return sb.toString();
}
}

另一个将IP转换为十进制的JAVA示例:- 字符串ip =“70.30.65.9”; String[] addrArray = ip.split("\."); 长数 = 0; 对于 (int i = 0; i将IP转换为十进制的PHP函数:- 函数 myip2long($ip) { 如果(is_numeric($ip)){ 返回 sprintf( "%u", floatval($ip) ); } 别的 { 返回 sprintf( "%u", floatval(ip2long($ip) )); } } 尝试应用它,例如: 回显 myip2long("192.168.1.1");
PHP 中将 IP 转换为十进制的另一个示例:- 函数 myip2long2($ip){ $d = 0.0; $b = 爆炸(".", $ip,4); 对于 ($i = 0; $i将十进制转换为 IP 的 PHP 示例:- 函数customLong2ip($ip){ $b=数组(0,0,0,0); $c = 16777216.0; $ip += 0.0; 对于 ($i = 0; $i

关于java - IP 地址转换为十进制,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com