PHP fsockopen函式詳解

2022-09-27 11:51:09 字數 2731 閱讀 5458

phpphp fsockopen函式說明:

語法:resource fsockopen ( string $hostname [, int katex parse error: expected 'eof', got '&' at position 20: … = -1 [, int &̲errno [, string &$errstr [, float $timeout = ini_get(「default_socket_timeout」) ]]]] )

開啟php fsockopen這個函式

php fsockopen需要 php.ini 中 allow_url_fopen 選項開啟。

allow_url_fopen = on
引數:

hostname:如果安裝了openssl,那麼你也許應該在你的主機名位址前面新增訪問協議ssl://或者是tls://,從而可以使用基於tcp/ip協議的ssl或者tls的客戶端連線到遠端主機。

port:埠號。如果對該引數傳乙個-1,則表示不使用埠,例如unix://。

errno:如果errno的返回值為0,而且這個函式的返回值為 false ,那麼這表明該錯誤發生在套接字連線(connect())呼叫之前,導致連線失敗的原因最大的可能是初始化套接字的時候發生了錯誤。

errstr:錯誤資訊將以字串的資訊返回。

timeout:設定連線的時限,單位為秒。

返回值:

fsockopen() 將返回乙個檔案控制代碼,之後可以被其他檔案類函式呼叫(例如: fgets() , fgetss() , fwrite() , fclose() 還有 feof() )。如果呼叫失敗,將返回 false 。

php fsockopen使用案例

1、fsockopen 來模擬生成 http 連線

n";

}else

echo $content;

fclose($fp);

}?>

執行結果:

2、php fsockopen模擬post/get方法

fsockopen除了像上面例項模擬生成 http 連線之外,還能實現很多功能,比如模擬post 和 get 傳送資料的方法。

get :

'bar',

'baz' => 'boom',

'site' => 'www.tbrer.com',

'name' => 'nowa magic'

);$query_str = http_build_query($data);// http_build_query()函式的作用是使用給出的關聯(或下標)陣列生成乙個經過 url-encode 的請求字串

接收頁面 test2.php 的**為:

';

print_r($data);

echo '

";

}else

// 關閉

fclose($fp2);

fclose($fp);

}?>

注意:

bool stream_set_blocking ( resource $stream , int $mode )

為 stream 設定阻塞或者阻塞模。

此函式適用於支援非阻塞模式的任何資源流(常規檔案,套接字資源流等)。

引數stream:資源流。

mode:如果 mode 為0,資源流將會被轉換為非阻塞模式;如果是1,資源流將會被轉換為阻塞模式。 該引數的設定將會影響到像 fgets() 和 fread() 這樣的函式從資源流裡讀取資料。 在非阻塞模式下,呼叫 fgets() 總是會立即返回;而在阻塞模式下,將會一直等到從資源流裡面獲取到資料才能返回。

返回值成功時返回 true, 或者在失敗時返回 false。

4、使用 fsockopen 偽造來路

n";

}else

fclose($fp);

}?>

test2.php 的**為:

';

print_r($data);

echo '

可以看到 http_referer 的值為 www.kaotop.com,即來路已經偽造成功。

ngx process options函式詳解

ngx process options是初始化init cycle中的一些如 conf file,prefix,conf prefix等字段的功能,其方法的定義在src core nginx.c中,以下為詳細 主要功能是將ngx prefix,配置檔案的位置資訊,以及命令列引數的資訊初始化到cycl...

linux clock gettime函式詳解

注意 1.精確級別,納秒級別 原型long sys clock gettime clockid t which clock,struct timespec tp which clock引數解釋 clock realtime 系統實時時間,隨系統實時時間改變而改變,即從utc1970 1 1 0 0 ...

遞迴函式(詳例)

從函式棧的角度的運用 簡單的列印運用 includevoid function int n int main void function int n return 非空鍊錶的遞迴找最大值 lim findmax lim headptr 為了更好的理解遞迴的執行過程 在呼叫自生到最後時,if head...