以下是使用C语言编写的示例代码,用于计算两个相同地址族(IPv4或IPv6)IP地址相同前缀的长度:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int getCommonPrefixLength(const char* ip1, const char* ip2) {
int len = 0;
int maxLen = strlen(ip1); // 或者使用strlen(ip2),因为两个地址相同长度一致
for (int i = 0; i < maxLen; i++) {
if (ip1[i] != ip2[i]) {
break;
}
len++;
}
return len;
}
int main() {
const char* ip1 = "192.168.0.1";
const char* ip2 = "192.168.0.255";
int prefixLength = getCommonPrefixLength(ip1, ip2);
printf("Common Prefix Length: %d\n", prefixLength);
return 0;
}
这段代码假设你已经有了两个IPv4地址的字符串表示形式,并且这两个地址属于同一个地址族。函数getCommonPrefixLength()
计算这两个IP地址的相同前缀的长度。在示例中,我们假设IP地址为192.168.0.1
和192.168.0.255
,输出结果将是 Common Prefix Length: 10
,表示这两个IP地址共享了10位的相同前缀。你可以根据需要修改输入的IP地址来进行测试。
内容由零声教学AI助手提供,问题来源于学员提问