網域名稱解析及HTTP

2021-10-02 15:54:48 字數 3942 閱讀 1859

超文字傳輸協議(http)

正規表示式

url:統一資源定位符

www.sina.com.cn -> 202.60.121.55, ...

...#include

struct hostent* gethostbyname (char const* name)

;返回主機條目資訊結構指標,失敗返回null。

hostent

h_name - 字元指標,指向主機官方名字串

h_aliases - 指向字元指標陣列的指標,該陣列中的每個元素都是字元指標,指向乙個別名字串,最後乙個元素是乙個null指標

h_addrtype - 位址型別,af_inet(ipv4)

h_length - 位址位元組數, 4位元組(ipv4)

h_addr_list - 指向結構體指標陣列的指標,該陣列中的每個元素都指向乙個struct in_addr型別的結構體,其中存放著主機乙個ip位址,最後乙個元素是乙個空指標

#include

char* inet_ntoa (struct in_addr addr)

;

#include

#include

#include

#include

int main (

int argc,

char

* ar**)

struct hostent* host =

gethostbyname (ar**[1]

);if(

! host)

if(host->h_addrtype == af_inet)

return exit_success;

}

請求

響應

}包含標頭檔案

#include
... href=

" "

...href=

"\s*\([^ >"

]*\)\s*"

\s - 匹配任意空白字元(空格、製表、回車、換行)

* - 重複前乙個匹配項任意次

[^ >"

] - 匹配任意除空格大於號雙引號以外的字元

\(和\) - 定義子表示式

#include

#include

#include

#include

int main (

int argc,

char

* ar**)

file* fp = fopen (ar**[1]

,"r");

if(! fp)

if(fseek (fp,0,

seek_end)==

-1)long size = ftell (fp);if

(size ==-1

)char

* buf=

(char

*)malloc (size +1)

;if(! buf)

if(fseek (fp,0,

seek_set)==

-1)if

(fread (buf,

1, size, fp)

!=size)

buf[size]

='\0'

; fclose (fp)

; regex_t ex;

int error = regcomp (

&ex,

"href=\"\\s*\\([^ >\"]*\\)\\s*\"",0

);if(error)

char

const

* html = buf;

regmatch_t match[2]

;while

(regexec (

&ex, html,

2, match,0)

!= reg_nomatch)

regfree (

&ex)

; free (buf)

;return exit_success;

}

網域名稱解析過程 網域名稱解析過程

0x01相關資訊 閘道器 閘道器實質上是乙個網路通向其他網路的ip位址。要實現兩個網路之間的通訊,則必須通過閘道器。如果網路a中的主機發現資料報的目的主機不在本地網路中,就把資料報 給它自己的閘道器,自己的閘道器通過尋找路由指向,再由閘道器 給網路b的閘道器,網路b的閘道器再 給網路b的某個主機。i...

網域名稱解析教程!網域名稱解析錯誤怎麼解決?

網域名稱解析怎麼弄?以www.gfxs.cn建站為例,網域名稱解析方法如下 1 選擇伺服器 在中國境內置立 都需要解析到國內伺服器,以下解析以國內伺服器為例。2 新增 www 子網域名稱解析記錄 3 新增主網域名稱 根網域名稱解析記錄 新增以下記錄後,你的主網域名稱 比如 com 就可以正常訪問。同...

URL解析,網域名稱解析

url 遵守一種標準的語法,它由協議 主機名 網域名稱 埠 路徑 以及檔名這六個部分構成,其中埠可以省略。具體語法規則如下 1.協議例如 http,https,ftp 2.主機名 mp就是主機名 3.網域名稱 csdn.net 網域名稱和主機名要一起使用 4.埠http的預設埠是80,https的預...