Socket IP地址函數

UNIX提供各種功能調用,這將有助於操縱IP地址。這些函數將ASCII字符串和網絡字節有序的互聯網地址的二進制值(值存儲在套接字地址結構)。

有以下三個函數調用用於IPv4尋址:

(1) int inet_aton(const char *strptr, struct in_addr *addrptr):
此函數調用指定的字符串轉換,在互聯網標準點標記,一個網絡地址,並存儲的地址提供的結構。轉換後的地址將是網絡字節順序(字節下令從左至右)。這將返回1,如果字符串是有效的和錯誤0。

以下是使用示例:

#include <arpa/inet.h>

(...)
int retval;
struct in_addr addrptr

memset(&addrptr, '\\0', sizeof(addrptr));
retval = inet\_aton("68.178.157.132", &addrptr); 

(...)

(2) in_addr_t inet_addr(const char *strptr):
此函數調用指定的字符串轉換,在互聯網標準點標記,一個整數值,適合用作互聯網地址。轉換後的地址將是網絡字節順序(字節下令從左至右)。這將返回一個32位二進制的網絡字節命令IPv4地址和INADDR_NONE的錯誤。

以下是使用示例:

#include <arpa/inet.h>

(...)

struct sockaddr\_in dest;

memset(&dest, '\\0', sizeof(dest));
dest.sin\_addr.s\_addr = inet\_addr("68.178.157.132"); 

(...)

(3) char *inet_ntoa(struct in_addr inaddr):
此函數調用指定Internet主機的地址轉換爲一個字符串在互聯網標準點標記。

以下是使用示例:

#include <arpa/inet.h>

(...)

char \*ip;

ip=inet\_ntoa(dest.sin\_addr);

printf("IP Address is: %s\\n",ip);

(...)