使用 inet_pton 从文本文件转换 IP 地址无效

Use inet_pton for IP address conversion from a text file not working

我正在尝试使用 inet_pton 函数转换文本文件中包含的一系列 IP 地址。我需要从文本文件中获取 ip 地址字符串并将其作为 src 地址参数传递给 inet_pton()。在我检查 inet_pton() return 0 而不是 1 之后。 拜托,我将不胜感激


    whitelist= fopen("/home/...../whitlist.txt","r");

    while(fgets(line, sizeof(line), whitelist) ) {

        printf("%s", line);
    }
    if(inet_pton (AF_INET,line, &a)==1){
           printf("1");
       } else if(inet_pton (AF_INET,line, &a)==0){
           printf("0\n");
       } else {
           printf("-1");
       }

我不知道这个功能,但你似乎需要删除换行符。例如

while(fgets(line, sizeof(line), whitelist) ) {
    line[ strcspn( line, "\n" ) ] = '[=10=]';
    puts( line);
}