big*_*ato -4 c networking
我正在做一些编程,我想将网络掩码转换为网络前缀长度.
例如255.255.255.0 ----> 24.
最后我写了一些代码来做到这一点.
const char *network = "255.255.255.0";
int n = inet_addr(netowrk);
int i = 0;
while (n > 0) {
n = n << 1;
i++;
Run Code Online (Sandbox Code Playgroud)
}
我将是网络数量
小智 6
你应该首先尝试编译你的代码,它可以帮助你很多.由于您错误输入变量名称"netowrk",因此存在编译错误
要计算前缀而不是左移,你应该尝试右移,而不是使用inet_addr尝试inet_pton().
有关更多详细信息,请查看IPv4后到十进制的不同值?
在这里你可以查看代码:
int main()
{
const char *network = "255.255.255.0";
int n;
inet_pton(AF_INET, network, &n);
int i = 0;
while (n > 0) {
n = n >> 1;
i++;
}
printf("network = %s, suffix = %d\n", network, i);
}
Run Code Online (Sandbox Code Playgroud)