将IP从C字符串转换为无符号整数?
我有一个简短的问题;我有一个C字符串的IPv4(比如说“192.168.0.1”),我想把它转换成uint32\t。我相信应该有一些功能,但我还没有找到它。有什么想法吗?该函数称为将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; }; 当然,您也
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 ptoninet\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);