1
141
32位无符号整数
是
IPv4地址。同时
例如,我的本地谷歌在
事实上, http://1089059683/ 下面是一个测试程序来显示这两种转换,包括网络/主机字节交换:
|
2
43
下面是一对从IPv4转换为 对的
例子
解释
|
3
41
@巴里·凯利和@安德鲁·黑尔,事实上,我不认为乘法是实现这一目标的最明确的方法(alltough correct)。 一个Int32“格式化”的IP地址可以看作是下面的结构
所以你可以用+把它们加起来,或者你可以把它们组合起来。生成0x40E9BB63,即1089059683。(在我看来,用十六进制来查看字节要容易得多) 所以你可以把函数写成:
|
4
12
试试这个:
|
5
7
以及背面:
|
6
7
用IP地址描述了我遇到的一些大问题的解决方法。 修复它对我来说,是一个简单的类型铸造操作。
|
7
4
|
8
3
我的问题结束了,我不知道为什么。这里接受的答案和我需要的不一样。
|
9
2
对于正确的little-endian格式的UInt32,下面是两个简单的转换函数:
|
10
2
将上述几个答案组合到一个扩展方法中,该方法处理计算机的Endianness并处理映射到IPv6的IPv4地址。
单元测试:
|
11
1
如果您对该功能感兴趣,那么这里的答案不仅仅是它是如何实现的:
具有
|
12
1
|
13
1
上面的例子就是我的方法。。您可能需要做的唯一一件事是转换成UInt32以显示或字符串的目的,包括使用它作为字符串形式的长地址。 这是使用IP地址。解析(字符串)函数。叹息。 |
14
0
我今天想出了一个解决方案(应该先在google上搜索!):
我在泛型上使用了LINQ、lambda和一些扩展,因此虽然它产生了相同的结果,但它使用了一些新的语言特性,您可以用三行代码来完成。 如果你感兴趣的话,我在我的博客上有解释。 干杯, -jc公司 |
15
0
|
16
0
@Davy Ladman你用shift的解决方案是正确的,但仅对于ip开头的数字小于或等于99,事实上第一个八分之一必须投到long。 无论如何,用long类型转换回是相当困难的,因为存储64位(而不是Ip的32位)并用0填充4个字节
马西莫 |
17
0
假设您有一个字符串格式的IP地址(例如254.254.254.254)
|
18
0
输出:10101005056 |
19
0
|
20
0
|
MaliciouZzHD · 获取主网络接口IP地址的平台无关方法 6 年前 |
Hearen · 如何在Java中有效地检查IP和CIDR格式? 6 年前 |
Ulvi · 如何检查python代理旋转器和用户代理欺骗是否有效? 6 年前 |
david · Erlang:从主机名获取ip地址 6 年前 |
user_mda · AKS上LoadBalancer类型的服务 6 年前 |
Matthias · 基于端口的IPs子域 7 年前 |