[英]Convert IP address from hex to dec using strtol()
我將IP地址從框架添加到結構:
unsigned char destination_address[4];
在我的主程序中,我加載了一個結構體:
struct ipv4 naglowek_ipv4;
upakuj_ipv4(bufor_eth_ipv4, &naglowek_ipv4);
並嘗試以“人類可讀的格式”顯示它:
printf("Destination Adress: %ld.%ld.%ld.%ld\n",
strtol(naglowek_ipv4.destination_address[0],NULL,16),
strtol(naglowek_ipv4.destination_address[1],NULL,16),
strtol(naglowek_ipv4.destination_address[2],NULL,16),
strtol(naglowek_ipv4.destination_address[3]));
這沒有顯示我認為的方式。 有誰知道為什么嗎?
destination_address
不是字符串,而只是四個字節的數組。 因此,簡化您的通話至:
printf("Destination Adress: %d.%d.%d.%d\n",
naglowek_ipv4.destination_address[0],
naglowek_ipv4.destination_address[1],
naglowek_ipv4.destination_address[2],
naglowek_ipv4.destination_address[3]);
您會注意到是否包含了strtol
的聲明(以及您沒有將足夠的參數傳遞給上一次調用的事實):
#include <stdlib.h> /* provides strtol() function */
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.