C++ 在C语言中,inet_addr函数等价于什么#
我需要知道如何使用像inet_addr(“192.168.0.2”)这样的IP地址;在C++中 这里返回的是德沃德。我的C#包装器将此字段视为IntC++ 在C语言中,inet_addr函数等价于什么#,c++,c#-3.0,types,wrapper,C++,C# 3.0,Types,Wrapper,我需要知道如何使用像inet_addr(“192.168.0.2”)这样的IP地址;在C++中 这里返回的是德沃德。我的C#包装器将此字段视为Int 有人能帮你消除这个误解吗?如果它是.net,我假设它是一个小小的endian机器,所以你“可以”按如下方式操作: address = (192 << 0) | (168 << 8) | (0 << 16) | (2 << 24); address=(192您应该使用IPAddress类。它会给您带来
有人能帮你消除这个误解吗?如果它是.net,我假设它是一个小小的endian机器,所以你“可以”按如下方式操作:
address = (192 << 0) | (168 << 8) | (0 << 16) | (2 << 24);
address=(192您应该使用IPAddress类。它会给您带来一些麻烦,因为它试图阻止您依赖IP4地址。address成员已声明为过时。以下是解决方法:
using System;
using System.Net;
class Program {
static void Main(string[] args) {
var addr = IPAddress.Parse("192.168.0.2");
int ip4 = BitConverter.ToInt32((addr.GetAddressBytes()), 0);
Console.WriteLine("{0:X8}", ip4);
Console.ReadLine();
}
}
输出:0200A8C0
请注意,地址的网络顺序正确(大端)你到底想做什么?C已经在整个IP栈上有包装了——你不需要对这些调用。我在C++库中有一个包装器,我只是阅读文档来使用这个库,但是例子是C++代码,在一些地方我不太明白。ESS到DWORD类型字段,其中我的包装有int字段。所以我想知道如何转换IP地址字符串(例如“192.1680.2”)并将其设置为int字段。如果您显示C++代码和C代码,您可能会有疑问。