IPアドレス・ネットマスクの変換・チェック・統合・除外、国判定を簡単に。

こんな機能欲しいけど、自分で作るの面倒くさい!みたいな思いつきを
是非Twitterで意見投げてみてください。
時間は掛かるかもしれませんがコツコツ頑張るかも!?
Twitterリンクは下部)

IPアドレスから地理的位置情報(GeoIPLocation)の検索機能を公開しました。

Google or AdMax Promotion (ipvtop)

CSEのAPIテスト実行 (CSE/Googleカスタム検索エンジンAPI)

Googleカスタム検索エンジンAPIはプログラムから呼び出す前にWebでテストできます。
実際に独自のプログラムから呼び出しがうまくいかない場合の、
エラー原因の切り分けに有効です。
ここではAPI実行のテスト実行による確認手順をご紹介します。

本投稿は以下コンテンツの1記事になります。一連の流れは以下からご確認下さい。

私(本検証)は既にGoogleアカウントの取得と、
GoogleAPIコンソールへのアクセスの設定は済んでいますので、
途中、ログイン・登録等を促す画面が表示された場合は画面の指示に従ってください。

Googleカスタム検索エンジン(CSE)のAPIテスト実行

プロモーション

Google or AdMax Promotion (ipvpos)

Googleカスタム検索エンジンのテスト実行は、
リファレンスページ内で行う事ができます。

https://developers.google.com/custom-search/json-api/v1/reference/cse/list?hl=ja

CSE APIの入力必須項目は以下の通り、3つです。

This method requires three query parameters:

  • The search engine to use in your request (using the cx query parameter)
  • The search terms for in this request (using the q query parameter).
  • Your API key (using the key query parameter).

(抜粋引用)https://developers.google.com/custom-search/json-api/v1/reference/cse/list?hl=ja

 

リファレンスページの右に表示されている項目(テスト実行)では、
APIキーは不要ですのでの2つを入力して実行します。

  • q
  • cx

 

API key
Using a demo API key to authorize your request.

(G訳)APIキー
デモAPIキーを使用してリクエストを承認する。

 

api_test_run_st01

リファレンスページのデモ・CSE APIデモ実行確認

 

テスト実行

では実際にリファレンスページで入力して実行してみます。

ここではクエリ文字列に「株式会社ケイ・オプティコム」と入力しています。
※利用しているプロバイダ「eo光」の運営会社さんです。

api_test_run_st02

キーワードとCXキー入力・CSE APIデモ実行確認

 

※これは以下でご紹介した「JPNIC」から対象プロバイダのCIDRを検索する手順を、
CSEで置き換えているものです。

実際の動作は以下でも確認ができます。

 

入力が済んだら、スクロールして下部の「Execute」をクリックして実行します。

api_test_run_st03

Executeで実行・CSE APIデモ実行確認

 

指定に問題がない場合には、グリーンバーでレスポンス部分が表示されます。

api_test_run_st04

実行結果の表示・CSE APIデモ実行確認

 

この場合、以下の様なレスポンスが得られます。

 

例えばCXキーに誤りがあるような場合(以下はCXキー未設定)は以下のように表示されます。

api_test_run_st05

CXキーのエラー・CSE APIデモ実行確認

 

しっかりcxキーがエラーだと表示されています。
"message": "Need to provide a Custom Search Engine ID. Missing cx parameter.",

 

このようにプログラムからAPIを呼び出す前に、
正しく設定ができているか、レスポンスが取れるかという確認ができます。

これで正しく取得できるようであれば、
後はプログラムから呼び出してあげるだけです。

もっと言えば、URLにアクセスするだけで確認ができます。

URLを叩いでブラウザで確認、又はRESTAPIで実行(非推奨)

直接、以下リンクをクリックしても動作確認はできるはずです。

https://www.googleapis.com/customsearch/v1?key=AIzaSyAnGk3OLeCz2897XOsP2XZTuX3Xb8Y3U3E&cx=014810786654675656813:8jolq19mpc8&q=%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%82%B1%E3%82%A4%E3%83%BB%E3%82%AA%E3%83%97%E3%83%86%E3%82%A3%E3%82%B3%E3%83%A0

これは以下でご紹介しているものからリンクを生成しています。

(注意)

一般的には「発行されたAPIキー」は公開するべきものではありません。
APIキーが知られると言う事は、誰でもこのAPIを実行できることになります。

上記のAPIキーではHTTPリファラによる制限をかけています。
しかしリファラ偽装は容易にできます。

カスタム検索エンジンAPIでは1日100回の検索実行によって無料検索枠を超過します。

課金を有効にしていない場合、検索が利用できなくなるというだけではありますが、

課金が有効であった場合、他人の検索によって膨大な請求が発生する恐れもあります。

 

ただ今回は動作の確認という意味で、公開しています。

 

数回程度、テストでこのAPIキーを利用する事は許容範囲ではありますが、
無料で誰でも取得可能なAPIキーを取得しないで他人のAPIキーを使うのは、
決してお勧めできることでもありません。

おかしな挙動、極端なアクセス増が見られる場合には、
いつでもこのAPIキーを削除して停止致します。

 

ただ、そもそもAPIキーをPHPなどサーバーサイトに移して秘匿として、
はたしてbotやクローラなど、非ユーザーによるアクセスが制限できるか?

と言えば、非常に難しい課題になりますので、
APIキーを公開しない事は大前提ですが、それだから安全とも言えない現状でもあります。

課金を有効にして、不正利用なく安全にこうしたAPIを利用するには、
もう少し調査、検討が必要だなと感じている次第です。

API無料枠と課金については、以下に明記されています。

Pricing

JSON Custom Search API provides 100 search queries per day for free. If you need more, you may sign up for billing in the API Console. Additional requests cost $5 per 1000 queries, up to 10k queries per day.

If you need more than 10k queries per day and your Custom Search Engine searches 10 sites or fewer, you may be interested in the Custom Search Site Restricted JSON API, which does not have a daily query limit.


(Google翻訳)
価格設定
JSONカスタム検索APIは、無料で1日あたり100件の検索クエリを提供します。 さらに必要な場合は、APIコンソールで請求することができます。 追加のリクエストは1000クエリあたり5ドル、1日あたり最大10kクエリです。

1日あたり10,000件以上のクエリが必要で、カスタム検索エンジンが10個以下のサイトを検索する場合は、毎日のクエリ制限がないカスタム検索サイト限定JSON APIに興味があるかもしれません。

(抜粋引用)Custom Search JSON API  |  Custom Search  |  Google Developers

なおAPIダッシュボードで確認できる表示として、以下のようにも書かれています。
日本の場合、午前0時にリセットされるとされています。

「毎日の割り当ては、太平洋時間(PT)の午前 0 時にリセットされます。」

※太平洋時間(PT):協定世界時(UTC)を8時間遅らせた、主にアメリカ西海岸の地域の標準時。UTC-8。

 

REST APIからの実行例は、以下サイトで紹介されています。

Using REST to Invoke the API  |  Custom Search  |  Google Developers

以下の様なサンプルプログラムが紹介されています。

がっつり、APIキーをここに指定しろと16行目に書かれています。
※「key=YOUR-KEY」部分。
「APIキーを公開しろと?」という感じです。

尚、この場合、無料枠はありませんが、上限もありません。

Pricing

Custom Search Site Restricted JSON API requests cost $5 per 1000 queries and there is no daily query limit. You may sign up for billing in the API Console.

(Google訳)
価格設定

カスタム検索サイト制限されたJSON APIリクエストには1000クエリあたり5ドルの費用がかかり、毎日のクエリ制限はありません。 APIコンソールで請求にサインアップすることができます。

(引用)Custom Search Site Restricted JSON API  |  Custom Search  |  Google Developers

ダッシュボードにも以下のように明示されています。

Custom Search JSON API 1 日あたり 10,000 クエリを上限とします。(100クエリ/dayまで無料)
Custom Search Site Restricted JSON API 1 日あたりのクエリの上限はありません。(無料枠なし)

 

但し、以下条件を満たす場合は、無料となる模様

About the Custom Search Site Restricted JSON API

If your Custom Search Engine is restricted to only searching specific sites (10 or fewer), you can use the Custom Search Site Restricted JSON API. This API is similar to the JSON Custom Search API except this version has no daily query limit. To use this version, confirm that you see 10 or fewer sites to search in the “Sites to Search” section of your Custom Search Engine control panel, the are no global top level domain patterns, and that “Search the entire web” is set to OFF.

When using the Custom Search Site Restricted JSON API endpoint, be mindful that if your Custom Search Engine configuration is changed so that it does not conform with the site restriction rules above, the Custom Search Site Restricted JSON API may not return the expected results.

(Google訳)
JSON APIのカスタム検索サイトについて

カスタム検索エンジンが特定のサイト(10個以下)の検索に限定されている場合は、カスタム検索サイトのJSON APIを使用できます。 このAPIはJSONカスタム検索APIと似ていますが、このバージョンには日次クエリ制限がありません。このバージョンを使用するには、カスタム検索エンジンのコントロールパネルの[検索するサイト]セクションで検索するサイトが10個以下で、グローバルトップレベルのドメインパターンがなく[ウェブ全体を検索]が設定されていることを確認してくださいオフにします。

カスタム検索サイトの制限付きJSON APIエンドポイントを使用する場合、カスタム検索エンジンの設定が上記のサイト制限ルールに準拠しないように変更された場合、カスタム検索サイトの制限付きJSON APIは予期した結果を返さない可能性があります。

(引用)Custom Search Site Restricted JSON API  |  Custom Search  |  Google Developers

 

検索するサイトの指定が10以下で、Web全体の検索はOFF。
かつ、検索するサイトにグローバルトップレベルドメインを含まないことが条件。とされています。

グローバルトップレベルドメインですので「*.com」や「*.jp」「*.info」といった
広範囲のサイト指定は認めないという意味と読み取れます。

「ipvx.info/*」などであればトップレベルのドメイン指定という訳ではないので、
大丈夫であると考えられます。

要はこういうこと。

APIキーを隠蔽し、PHP側で悪意あるプログラムから、
不正にAPIを呼び出されて課金に怯えることはなく、

適切に設定した「Custom Search Site Restricted JSON API」からの検索なら、
上限設定もないから安心して利用していいよ。

ただ、以下のように呼び出せよと。

https://www.googleapis.com/customsearch/v1/siterestrict?[parameters]

かと。(たぶん?)

 

実際、考えてみれば、不正なアクセスからAPIを守る事は決して容易ではなく、
APIキーが知られたから不正な実行を受けるわけではなく、

PHPプログラムにAPIキーを秘匿に埋め込み、実行したところで、
PHPプログラム自体が、不正な実行であることが判断できなければ、何も守れません。

そういう意味では、APIキーを秘匿とすれば不正なAPI実行を回避できるわけではないので、
こういう公開してしまうアプローチもアリなのかなと思う次第です。

実際、このサンプルプログラムを設置すると以下のようになります。
カスタム検索エンジンID(cx=….)はサンプルのまま利用させて頂いています。

http://ipvx.info/dev/cse_sample.html

 

どうしてもCSEで結果が得られない場合

私も当初はずっとレスポンスが0件表示で正しく取得できず、悩みました。

大半は「cxキーって何ぞや?」という部分が分かっていなかっただけでした。

また、cvキーを指定するに当たっては、
そのcxキーをもつカスタム検索エンジンの動作が正しい必要があります。

条件の切り分けにも、カスタム検索エンジン側のデモ実行で、
目的の検索結果が得られるかを、確認したうえでcxキーを指定すると、より確実です。

cse_create_cse_st11

検索結果の例・Googleカスタム検索エンジンの作成

 

APIで取得している検索結果は、
上のように「カスタム検索エンジン」側で表示の確認ができる検索結果を、

APIから取得しているにすぎません。

まず第一段階として「カスタム検索エンジン」でデモ検索してご確認をされるとスムーズです。

 

(参考)Custom Search JSON API  |  Custom Search  |  Google Developers


AdMax Promotion

公開日:
最終更新日:2019/06/20

シェア頂けると新機能開発の励みになります!!

最後までお読みいただきありがとうございました。
便利!と思って頂けたらシェアを是非お願いします。
ご意見・ご批判でも感じた事を気にせずご指摘ください。

アカウント新規作成の為、是非フォローもお願いします。(無言OK)

※このページでこんな情報も一緒に見れたら便利!などの
アイディア・ご意見もお聞かせください。

また弊サイトはすべて広告費と個人の自腹にて運営・開発を行っています。
皆様、お仕事中でお忙しいことと存じますが、
ご興味がおありの広告が目に留まりましたら
広告主様のサイトもご覧いただけますと励みになります。

QRコードからもこのURLを開けます。
リンク先URL: https://ipvx.info/provider-ip-zone-search/cse/api_test_run/


AdMax Promotion

サイト内コンテンツ
すべて展開 | すべて省略

Google or AdMax Promotion (ipvlink)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です