2017-11-29 15 views
0

Request.elは、jsonレスポンスを返すWebサービスを簡単にクエリできるように構築されているようです。jsonを解析してipinfo.ioから位置データを取得するためにrequest.elを使用する

私は、コマンドラインから、私は次の問題、場合 http://ipinfo.io

にクエリから返さ都市と州の結果を得るためにそれを使用したい

curl https://ipinfo.io 

私が手バック以下:

{ 
    "ip": "24.xxx.xxx.xxx", 
    "hostname": "cpe-xx-xxx-xxx-x.xxx.xxx.xx.com", 
    "city": "Brooklyn", 
    "region": "New York", 
    "country": "US", 
    "loc": "40.6406,-74.0169", 
    "org": "AS12271 Time Warner Cable Internet LLC", 
    "postal": "11220" 
}%  

私は「都市」と「状態」の値を引き出し、などの文字列として単一の変数に入れたいと思います:

resolve.elページには多くのドキュメントがありますが、私はプログラマーではなく、必要な情報を取得する方法を理解できていません。私は正しい道を歩いていると確信していますが、私はどこに行きたいかを知ることができません。

答えて

1

このような何かがうまくいくかもしれない:

 
    (require 'request) 
    (request "https://ipinfo.io" 
      :parser 'json-read 
      :success (cl-function 
         (lambda (&key data &allow-other-keys) 
         (message "I sent: %S" (assoc-default 'args data)) 
         (message "Data is %s" data) 
         (message "Result is %s, %s" (assoc-default 'city data) (assoc-default 'region data))))) 

(私は都市/地域のデータへのアクセスを持っていないため、内部IPアドレスを持っているので、テストされていません。)

+0

は 'ipinfo.io'がありますあなたの外部IPを見に行く、あなたはそれをテストすることができます。 – Oleg

+0

私の回答に都市や地域がないので、自分の解決策がOPの質問に実際に答えるかどうかわからない:

 $ curl https://ipinfo.io { "ip": "100.106.148.21", "bogon": true } 
Realraptor

+0

huh ...本当に質問には関係ないが、これはどういうものなのか分からない可能。あなたはちょうどウェブサイトに行くとどうなりますか?それはあなたの外部IPと国を示していますか? – Oleg

関連する問題