同じドメイン名と複数の IP でリモート Web コンテンツを取得する PHP 関数_PHP チュートリアル

WBOY
リリース: 2016-07-21 14:56:31
オリジナル
884 人が閲覧しました

Bkjia.Com PHP チュートリアル PHP には、file_get_contents や fopen などの独自の関数を使用するなど、リモート Web コンテンツを取得するさまざまな方法があります。

ただし、DNSポーリングなどの負荷分散では、同じドメイン名が複数のサーバー、複数のIPに対応する場合があります。 blog.kcoffee.net は、DNS によって 3 つの IP アドレス (72.249.146.213、72.249.146.214、および 72.249.146.215) に解決されるとします。ユーザーが blog.kcoffee.net にアクセスするたびに、システムは次のいずれかのサーバーにアクセスします。対応する負荷分散アルゴリズム。

先週、ビデオ プロジェクトに取り組んでいたとき、このような要件に遭遇しました。このサーバーの送信ステータスをクエリするために、各サーバー上の PHP インターフェイス プログラム (abc.php とします) にアクセスする必要がありました。

現時点では、特定のサーバーに繰り返しアクセスし続ける可能性があるため、file_get_contents を使用して blog.kcoffee.net/abc.php に直接アクセスすることはできません。

これら 3 つのサーバー上で、http://72.249.146.213/abc.php、http://72.249.146.214/abc.php、http://72.249.146.215/abc.php に順番にアクセスすることで、これも不可能ですWebサーバーに複数の仮想ホストが搭載されている場合。

ホストは同じドメイン名に対応する複数のIPを設定できないため、ローカルホストの設定では機能しません。

これは、PHP および HTTP プロトコルを通じてのみ実現できます。abc.php にアクセスするときに、blog.kcoffee.net ドメイン名をヘッダーに追加します。そこで、以下のようなPHP関数を書きました。

echo file_get_contents("http://www.bkjia.com/abc.php");

以下は引用内容です:
/***************************
* 機能使用方法:同一ドメイン名が複数のIPに対応する場合、指定したサーバーのリモートWebページコンテンツを取得します
* 作成時刻: 2008-12-09
* 作成者: Zhang Yan (blog.s135.com)
* パラメータの説明:
* $ip サーバーの IP アドレス
* $host サーバーのホスト名
* $ url サーバーの URL アドレス (ドメイン名は含まれません)
* 戻り値:
* リモート Web ページのコンテンツを取得しました
* false リモート Web ページへのアクセスに失敗しました
*************** **********/
function HttpVisit($ip, $host, $url)
{
$errstr = ''; ' ';
$fp = fsockopen ($ip, 80, $errno, $errstr, 90);
if (!$fp)
{ return false; } HTTP/1.1rn"; line = fread ($ fp、4096)){$ pos = strpos、 "rnrn"); /abc.php");
$server_info2 = HttpVisit("72.249.146.214", "blog.s135.com", "/abc.php");
$server_info3 = HttpVisit("72.249.146.215", "ブログ . s135.com", "/abc.php");
?>






www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/364233.html技術記事 LieHuo.Net PHP チュートリアル PHP には、file_get_contents や fopen などの独自の関数を使用するなど、リモート Web コンテンツを取得するさまざまな方法があります。 ?php echo file_get_contents( http://...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート