将IP从C字符串转换为unsigned int?

Kai*_*aan 4 c linux windows ip

我有一个简短的问题; 我在C字符串中有一个IPv4(比如"192.168.0.1"),我想将它转换为uint32_t.我敢肯定应该有一些功能,但我找不到它.有任何想法吗?

cni*_*tar 10

该函数被调用inet_aton.

int inet_aton(const char *cp, struct in_addr *inp);
Run Code Online (Sandbox Code Playgroud)

结构in_addr定义<netinet/in.h>如下:

typedef uint32_t in_addr_t;

struct in_addr {
    in_addr_t s_addr;
};
Run Code Online (Sandbox Code Playgroud)

当然你也可以使用更新的功能inet_pton.

  • @KaiserJohaan是的,在里面你会发现`s_addr`是`unit32_t` (2认同)