转换ip

#include <stdio.h>
#include <arpa/inet.h>
int main() {
    struct sockaddr_in addr;
    struct sockaddr_in6 addr6;
    const char* ipv4_addr = "192.168.31.2";
    const char* ipv6_addr = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
    // convert ipv4 address from text to binary form
    if(inet_pton(AF_INET,ipv4_addr,&(addr.sin_addr))!=1) {
        fprintf(stderr,"Invalid IPv4 address\n");
        return 1;
    }
    if(inet_pton(AF_INET6,ipv6_addr,&(addr6.sin6_addr))!=1){
        fprintf(stderr,"Invalid IPV6 address\n");
        return 1;
    }
    printf("IPv4 address in binary form: 0x%x\n",addr.sin_addr.s_addr);
    printf("Now the ipv6 address has been saved in addr6.sin6_addr");
    //Now the ipv6 address has been saved in addr6.sin6_addr
    puts("");
    //convert binary form of ipv4 address to text form
    char ipv4_addr_text[INET_ADDRSTRLEN];
    char ipv6_addr_text[INET6_ADDRSTRLEN];
    if(inet_ntop(AF_INET,&(addr.sin_addr),ipv4_addr_text,INET_ADDRSTRLEN)==NULL){
        fprintf(stderr,"Error in converting IPv4 address to text form\n");
        return 1;
    }
    if(inet_ntop(AF_INET6,&(addr6.sin6_addr),ipv6_addr_text,INET6_ADDRSTRLEN)==NULL){
        fprintf(stderr,"Error in converting IPv6 address to text form\n");
    }
    printf("IPv4 address in text form: %s\n",ipv4_addr_text);
    printf("IPv6 address in text form: %s\n",ipv6_addr_text);
    return 0;
    
}

默认ip

#include <stdio.h>
#include <arpa/inet.h>
int main() {
    struct sockaddr_in ipv4_addr;
    ipv4_addr.sin_addr.s_addr = INADDR_ANY;
    struct sockaddr_in6 ipv6_addr;
    ipv6_addr.sin6_addr = in6addr_any;
    char dst_ipv4[INET_ADDRSTRLEN];
    char dst_ipv6[INET6_ADDRSTRLEN];
    if(inet_ntop(AF_INET,&(ipv4_addr.sin_addr),dst_ipv4,INET_ADDRSTRLEN)==NULL) {
        fprintf(stderr,"Error in converting IPv4 address to text form\n");
        return 1;
    }
    if(inet_ntop(AF_INET6,&(ipv6_addr.sin6_addr),dst_ipv6,INET6_ADDRSTRLEN) == NULL) {
        fprintf(stderr,"Error in converting ipv6 address to text form\n");
        return 1;
    }
    printf("%s\n",dst_ipv4);
    printf("%s\n",dst_ipv6);
    return 0;
}