1、ipv4位址轉換函式
/*將點分十進位制ip位址轉換為32位網路位元組順序的ip位址*/
int inet_addr(const char* cp);
/*將點分十進位制ip位址轉換為32位主機位元組順序的ip位址*/
int inet_network(const char* cp);
/*將點分十進位制的字串轉換為32位網路位元組順序的ip位址*/
char* inet_aton(const char* cp,struct in_addr in);
/*將32位網路位元組順序的ip位址轉換為點分十進位制的字串*/
char* inet_ntoa(struct in_addr in);
2、位址型別轉換
/*將存在在cp位置,位址型別為af的點分十進位制位址轉換到buf中,若af為ipv4,則buf應為struct in_addr,若af為ipv6,則buf應為struct in6_addr*/
int inet_pton(int af,const char* cp,void* buf);
/*將儲存在位置cp,位址協議為af的網路位元組序的32位ip位址轉換為點分十進位制,並儲存在長度為len的buf中,若af為ipv4,則cp應為struct in_addr型別,若af為ipv6,則cp應為struct in6_addr型別*/
char* inet_ntop(int af,void* cp,char* buf,socketlen_t len);
3、通過ip位址獲取網路號和主機號(ipv4)
/*從ip位址in(32位網路位元組序)中提取標準主機號*/
int inet_lnaof(struct in_addr in);
/*從ip位址in(32位網路位元組序)中提取標準網路號*/
int inet_netof(struct in_addr in);
/*將網路號(網路位元組序)和主機號(網路位元組序)組合成乙個標準ip位址(網路位元組序)*/
struct in_addr inet_makeaddr(int net,int host);
4、位元組順序轉換函式
/*長位元組位元組順序轉換函式*/
unsigned long int ntohl(unsigned long int net);
unsigned long int htonl(unsigned long int host);
/*短位元組位元組順序轉換函式*/
linux網路程式設計 網路位元組序 位址轉換
endian 這個詞出自 格列佛遊記 小人國的內戰就源於吃雞蛋時是究竟從大頭 big endian 敲開還是從小頭 little endian 敲開,由此曾發生過六次叛亂,其中乙個皇帝送了命,另乙個丟了王位。我們一般將 endian 翻譯成 位元組序 將 big endian 和 little en...
網路程式設計中位址格式轉換(linux下)
一 位址格式轉換 1 第乙個函式 include include include int inet pton int af const char src void dst 2 返回值 成功返回1,錯誤返回 1 3 引數 af 轉換格式 af inet ipv4 或者af inet6 ipv6 2 第...
Linux網路程式設計 位元組序 位址轉換函式
1 談到位元組序,那麼會有朋友問什麼是位元組序 很簡單 例如乙個16位的整數,由2個位元組組成,8位為一位元組,有的系統會將高位元組放在記憶體低的位址上,有的則將低位元組放在記憶體高的位址上,所以存在位元組序的問題。2 那麼什麼是高位元組 低位元組?也相當簡單 乙個16進製制整數有兩個位元組組成,例...