Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将IP从C字符串转换为无符号整数?_C_Windows_Linux_Ip - Fatal编程技术网

将IP从C字符串转换为无符号整数?

将IP从C字符串转换为无符号整数?,c,windows,linux,ip,C,Windows,Linux,Ip,我有一个简短的问题;我有一个C字符串的IPv4(比如说“192.168.0.1”),我想把它转换成uint32\t。我相信应该有一些功能,但我还没有找到它。有什么想法吗?该函数称为inet\u aton int inet_aton(const char *cp, struct in_addr *inp); \u addr中的结构在中定义为: typedef uint32_t in_addr_t; struct in_addr { in_addr_t s_addr; }; 当然,您也

我有一个简短的问题;我有一个C字符串的IPv4(比如说“192.168.0.1”),我想把它转换成uint32\t。我相信应该有一些功能,但我还没有找到它。有什么想法吗?

该函数称为
inet\u aton

int inet_aton(const char *cp, struct in_addr *inp);
\u addr中的结构在
中定义为:

typedef uint32_t in_addr_t;

struct in_addr {
    in_addr_t s_addr;
};

当然,您也可以使用较新的函数
inet\u pton

inet\u aton将字符*转换为sockaddr结构吗?@KaiserJohaan是的,在它里面您会找到
s\u addr
,它是
unit32\u t
,当涉及到windows时,我想您被inet\u addr卡住了吧?因为inet_aton dosnt似乎是在windows@KaiserJohaanWindows具有
inet\u pton
。只有在Windows vista之后才支持inet\u pton。据我所知,对于xp,您必须使用inet\u aton。
uint32\u t
不是合适的地址类型。现在是2011年,现代软件必须支持IPv6。将地址存储为任何数据交换的字符串,并存储在内部用户的
getaddrinfo
返回的
struct addrinfo*
中。
int inet_aton(const char *cp, struct in_addr *inp);