網路資訊的設定

2021-09-11 20:24:44 字數 2103 閱讀 3726

------------------------網路資訊的設定方式-----------------------------

setsockopt 設定網路的通訊狀態:

#include /* see notes */

#include

int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen);

引數一:sockfd 需要設定socket fd

引數二:選項 具體選項請檢視設定表

引數三:選項對應的屬性設定 具體屬性設定請檢視設定表

引數四:開啟或關閉 或 屬性的設定資訊

引數五:開啟或關閉 或 屬性的設定資訊

------------------------網路資訊檢索介面---------------------------------

gethostname() 獲得主機名

int gethostname(char *name, size_t len);

//引數一:用來儲存獲取到的主機名稱

//引數二:大小

返回值:成功:0

失敗 -1

getpeername() 獲得與套介面相連的遠端協議位址 (建立連線後才能呼叫,獲取對方的ip位址資訊)

int getpeername(int s, struct sockaddr *name, socklen_t *namelen);

引數一:需要獲取的socket描述符

引數二:獲取後的資訊儲存位址

引數三:資訊的大小

gethostbyname() 根據主機名取得主機資訊 endhostent()

gethostbyname()函式說明——用網域名稱或主機名獲取ip位址

包含標頭檔案

#include

#include

函式原型

struct hostent *gethostbyname(const char *name);

引數一:需要獲取的主機位址 (網域名稱 或 主機名) :網域名稱 www.baidu.com

返回值:失敗返回null 成功返回資訊指標

//獲取後的引數列表

struct hostent

hostent->h_name

表示的是主機的規範名。例如www.google.com的規範名其實是www.l.google.com。

hostent->h_aliases

表示的是主機的別名.www.google.com就是google他自己的別名。有的時候,有的主機可能有好幾個別名,這些,其實都是為了易於使用者記憶而為自己的**多取的名字。

hostent->h_addrtype

表示的是主機ip位址的型別,到底是ipv4(af_inet),還是pv6(af_inet6)

hostent->h_length

表示的是主機ip位址的長度

hostent->h_addr_lisst

表示的是主機的ip位址,注意,這個是以網路位元組序儲存的。千萬不要直接用printf帶%s引數來打這個東西,會有問題的哇。

所以到真正需要列印出這個ip的話,需要呼叫inet_ntop()。

const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) :

這個函式,是將型別為af的網路位址結構src,轉換成主機序的字串形式,存放在長度為cnt的字串中。返回指向dst的乙個指標。

如果函式呼叫錯誤,返回值是null。

printf(" ip: %s\n",inet_ntoa(*(struct in_addr*)hp->h_addr_list[i]));

getservbyname() 根據服務名取得相關服務資訊

gethostbyaddr() 根據主機位址取得主機資訊

getprotobyname() 根據協議名取得主機協議資訊

getprotobynumber() 根據協議號取得主機協議資訊

getsockname() 獲得本地套介面協議位址

getservbyport() 根據埠號取得相關服務資訊

Linux網路設定資訊

檢視網路配置 ls etc sysconfig network scripts cat etc sysconfig network scripts ifcfg enp5s0 type ethernet 裝置型別 bootproto none dhcp static none,動態ip 靜態 不指定 ...

centos7設定靜態ip 配置網路資訊

從ip資訊可以看到eth0是沒有ip的,這種情況下,我們無法使用網路,下面是恢復網路的三種方式 1.自動獲取命令 dhclient eth0 網絡卡名稱 執行成功之後系統將會獲取到ip。這種方式存在無效的情況,不過比較少,我只在ip位址分配伺服器出錯的情況下見過。2.使用ip命令設定 ifconfi...

網路的基本設定

11.管理網路 1.ip 一.網路位址基礎知識 1.ipv4 2進製32位寫成10進製是四位 172.25.0.10 255.255.255.0 255.255.255.0 子網掩碼 子網掩碼255位對應的ip位為網路位 子網掩碼0位置對應的ip位為主機位 二.配置ip 1.圖形介面 nm conn...