Creazy!

WEBエンジニア・ヤガーのテック・ガジェットブログ

WebService 開発実績

Nslookup API を作りました

投稿日:


前回はnslookupをPHPで実現してみたのですが、
nslookupをPHPで実装する簡単なサンプル
折角なのでAPI化して誰でも使えるようにしてみました。
Pipes: Nslookup API
例のごとく、Pipes化しておいたのでRSS、JSONP、PHPシリアライズなど多様な出力形式に対応しています。以下、使い方の説明です。

基本的な使い方

searchパラメータに調べたいIPあるいはホスト名をセットするだけです。
例えば「www.google.co.jp」を調べたい場合は下記のようにします。
http://pipes.yahoo.com/yager/nslookup?search=www.google.co.jp
「www.google.co.jp」には複数のIPがふられているようなのでカンマ区切りで出力されます。

選択した文字列からIP|ホスト名を調べるBookmarklet

基本的な使い方の例として、ブラウザ上で選択した文字列をsearchパラメータに渡してnslookupするBookmarkletを作ってみました。
Select to nslookup
上のリンクをブックマークして下さい。

javascript:(function(){var d=document,w=window;if(d.selection)r=d.selection.createRange().text;else if(w.selection)r=w.selection.createRange().text;else if(d.getSelection)r=d.getSelection();else if(w.getSelection)r=w.getSelection();else r='';window.open('http://pipes.yahoo.com/yager/nslookup?search='+r);})();

JSON(P) API

jsonで出力したい場合は _render=json パラメータを付けます。
更に、jsonpで受けたい場合は _callback=コールバック関数 を指定します。
http://pipes.yahoo.com/yager/nslookup?_render=json&_callbak=callback&search=www.google.co.jp
例として、見ているサイトのホスト名からIPを調べるBookmarkletを作ってみました。
Nslookup this Site
上のリンクをブックマークして下さい。

javascript:v=function(json){alert('search : '+json.value.items[0].title+'\nresult :\n'+json.value.items[0].description.replace(/,/g,'\n'));};d=document;s=d.createElement('script');s.charset='UTF-8';s.src='http://pipes.yahoo.com/yager/nslookup?_render=json&_callback=v&search='+location.host;d.body.appendChild(s);void(0);

PHPシリアライズで呼び出す方法

Yahoo!Pipesでは新しくPHPで直接データ取得できる形式ができました。
一応、サンプルソースのせておきます。

<?php
$search     = "www.google.co.jp";
$req        = "http://pipes.yahoo.com/yager/nslookup?_render=php&search=".$search;
$serialized = file_get_contents($req);
$list       = unserialize($serialized);
if ( count($list["value"]["items"]) ) {
// 検索したIPもしくはホスト名
echo $list["value"]["items"][0]["search"]."\n";
// nslookupが返したIP配列(ホスト名で検索したときのみ)
echo implode("\n",$list["value"]["items"][0]["ips"])."\n";
// nslookupが返したホスト名(IPで検索したときのみ)
echo $list["value"]["items"][0]["hostname"]."\n";
// searchと同様
echo $list["value"]["items"][0]["title"]."\n";
// nslookupが返した結果(ホスト名、もしくはIP(カンマ区切りで複数))
echo $list["value"]["items"][0]["description"]."\n";
}
//var_dump($list);
?>

まとめ

APIでnslookupするようなケースがあるのか、いまのところ思い付きませんが、取りあえず自由に使って下さい。Pipesを通しているので10分くらいは結果がキャッシュされます。
Yahoo!Pipesのキャッシュ時間は10分間
それから、nslookupの結果は参照しているネームサーバによって変化します。
今回のAPIはオレが使っているXREAのサーバのnslookup結果をPipesに食わせているので、XREAサーバ(多分国内)のネームサーバからの結果という事になります。参照するネームサーバを特定したいとか、自サーバのnslookupを使いたいという場合は、前のエントリーでも参照して自分で作ってみて下さい。
nslookupをPHPで実装する簡単なサンプル

-WebService, 開発実績

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

AmaQuick v2.0.0公開(デザインを一新、複数テンプレートやコピー補助、レビュー関連キーワード追加)

ブロガー・アフィリエイター必須のAmazonアソシエイト補助ツール「AmaQuick」を久しぶりに更新しました。久しぶり…というか調べたら約1年ぶりですよ(笑)すみません更新遅くて。今回は …

UstreamのRecordedをダウンロードできる「Ust DL」はUserScriptでもイケます

【2012/01/03:更新】 Ust DLの公式ページができました。今後の最新情報はこちらをご確認ください。 Ust DL 公式ページ ・UstreamのRecordedをダウンロードするBookm …

no image

続:Apple Store のアウトレット品が買える「特別限定販売」ページをいち早くチェックする方法

以前こんなエントリーを書いて、 ・Apple Store のアウトレット品が買える「特別限定販売」ページをいち早くチェックする方法 TumblrにAppleの特別限定販売ページの更新情報を食わせて、T …

Twitter公式の「共有ブックマーク」をクリッピング用Bookmarkletに改造

・Twitterブログ: ツイートボタンのブックマークレット: どのページからでもリンクを共有 去る9月27日、Twitterから公式のブックマークレットが公開されました。ブックマークレットの設定は下 …

ミクシィ【毎月1冊無料】のフォトブック「nohana」を早速試した

2月19日に公開されたばかりの株式会社ミクシィの新サービス「nohana(ノハナ)」で、早速フォトブックを作成してみました。 『ノハナ』は、スマートフォンにアップロードした写真を家族だけで共有するとと …

スポンサードリンク

スポンサードリンク