Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert string to IP address and vice versa

how can I convert a string ipAddress (struct in_addr) and vice versa? and how do I turn in unsigned long ipAddress? thanks

like image 977
Safari Avatar asked Mar 16 '11 16:03

Safari


People also ask

How do I convert a string into an Internet address?

in_addr_t inet_addr(const char *strptr) This function call converts the specified string in the Internet standard dot notation to an integer value suitable for use as an Internet address. The converted address will be in Network Byte Order (bytes ordered from left to right).

Is IP address a string or integer?

IP addresses are whole numbers (the definition of integer, although they often do not meet the integer definition of some programming languages). There is one who strongly disagrees (see the comments @ stackoverflow.com/q/45067655/3745413).


1 Answers

Use inet_ntop() and inet_pton() if you need it other way around. Do not use inet_ntoa(), inet_aton() and similar as they are deprecated and don't support ipv6.

Here is a nice guide with quite a few examples.

// IPv4 demo of inet_ntop() and inet_pton()  struct sockaddr_in sa; char str[INET_ADDRSTRLEN];  // store this IP address in sa: inet_pton(AF_INET, "192.0.2.33", &(sa.sin_addr));  // now get it back and print it inet_ntop(AF_INET, &(sa.sin_addr), str, INET_ADDRSTRLEN);  printf("%s\n", str); // prints "192.0.2.33" 
like image 157
Milan Avatar answered Sep 26 '22 01:09

Milan