1


6

私の知る限り、

$ _SERVER ['REMOTE_HOST']は、 "google.com"または "yahoo.com"になります。

しかし、それは最も確実な方法ですか?

他に方法はありますか?

8 Answer


9


あなたはhttp://www.jafsoft.com/searchengines/webbots.html [ユーザーエージェントとIPアドレス]で検索エンジンを識別します。 詳細については、http://www.jafsoft.com/searchengines/spider_hunting.html [検索エンジンのスパイダーとWebボットを識別する方法]を参照してください。 http://www.user-agents.org/ [このリスト]も注目に値します。 しかし、必ずしも決定的なものとしてユーザエージェント(あるいはリモートホスト)を扱うべきではありません。 ユーザーエージェントは、相手方があなたにそれを伝えていることを伝えているものに他なりません。もちろん、あなたに何かを言うことは自由です。 Googlebotのふりをするコードを書くのは簡単です。

PHPでは、これは `+ $ _ SERVER ['HTTP_USER_AGENT'] `および ` $ _ SERVER ['REMOTE_HOST'] +`を見ることを意味します。

検索エンジンはたくさんありますが、正直なところそれはあなたが一般的に話すことを本当に気にかけているほんの少数です。 グーグルとヤフーは共に市場のほぼすべてを持っている。 しかしもちろんそれはあなたが達成しようとしていることによります。

注:*検索エンジンを通常のユーザーとは異なる方法で扱うことには細心の注意を払ってください(Joelが言っているように "邪悪なハイフンサイト"のように)*コンテンツに関しては。 特に悪いケースでは、これはあなたのサイトがその検索エンジンから削除される可能性があります。 それが起こらないとしても、あなたはおそらく何かを期待しているサイトに行く何人かのユーザを延期するでしょう。 それから、代わりに「この記事を参照するには登録してください」というボックスが表示されている場合は、高バウンス率についてお気軽にお問い合わせください。


8


まず第一に、あなたがあなたのサイトが普通のユーザーのために含んでいるより異なるコンテンツを検索エンジンボットに提供するためにこれをしようとしていないことを私は願っています。 彼らがあなたがこれをやっているのを発見すると、あなたのサイトは完全に彼らのリストから削除されるでしょう。 あなたがそれの危険性を理解している限り、あなたは彼らがどのようなユニークなユーザーエージェントを使用するかについての情報を見つけることができます:

ただし、(通常は動作不良の)Webスクレーパーを作成している人の中には、ユーザーエージェント文字列をGoogleのような「正当な」クローラと同じに設定する人もいます。 あなたはそれらが実際にグーグル/ヤフー/ etcから来ていることを確認するためにボットのIPアドレス/ホスト名を検索することによってこれらを捕らえることができます。 ホスト名検索で何を探すべきかについてのより多くの情報(http://www.spanishseo.org/how-to-identify-user-agents-and-ip-addresses-for-bot-blocking [この記事から]):

_ * Googleクローラーはgooglebot.comで終わるようになります crawl-66-249-70-244.googlebot.com。 * Yahooクローラーはcrawl.yahoo.netで終わります llf520064.crawl.yahoo.net。 * Live Searchクローラーは、次のようにsearch.msn.comで終了します msnbot-65-55-104-161.search.msn.com。 * Ask crawlerはcrawler4037.ask.comのようにask.comで終わります。 _


5


あなたはおそらく$ _SERVER ['HTTP_USER_AGENT']を使用してグーグルボットかヤフーを探すほうがいいでしょう。 スラップ。


2


私はクローラーがgoogle.comから来ているとは思わないし、そこから来るボットとして扱うことを望まない他の人々を知っています。 あなたのサイトを検索するすべての人。

あなたがする必要があるのは、さまざまなボットのIPを調べることです。 http://www.google.com/support/webmasters/bin/answer.py?hl=ja


1


$ _SERVER ['HTTP_USER_AGENT']

さまざまなユーザエージェント文字列をここでチェックしてください。http://www.user-agents.org/


0


あなたが言及したもののように、よく知られ行動するロボットでそれをする最良の方法は、あなたが$ _SERVER ['HTTP_USER_AGENT’で見つけることができる user agentによるものです。 ]。


-1


私は一緒にハッキングしました、しかし、あなたはそれらがサーチエンジンドメインから来ているかどうか見るために$ _SERVER ['HTTP_USER_AGENT']を見なければならないでしょう。

関数is_crawlers(){

$ sites = 'Google | Yahoo | msnbot |'; //残りの検索エンジンを追加する

return(preg_match( "/ $ sites /"、$ _SERVER ['HTTP_USER_AGENT']))> 0) 真偽;

}