2017-01-11 9 views
1

http://ipinfo.ioは、特定の情報タグの例を始めるxargsの1行に情報を取得するためにipinfo.ioで形成

8.8.8.8,AS15169 Google Inc. 
8.8.4.4,AS15169 Google Inc. 
1.2.3.4,AS15169 Google Inc. 

私は情報の複数の部分をしたいです

cat ips.txt | xargs -I% curl -s http://ipinfo.io/%/city http://ipinfo.io/%/region | paste -d"," ips.txt - > ip_info.txt 

戻る:

私はそこに例を変更しました
156.221.17.167,Punjab 
,Dol pri Ljubljani 

どのように私はすべての情報を合わせて私の要求をフォーマットすることができ、カンマで区切って同じ行にIPに関連する「」そのように:あなたは複数の情報が欲しい

156.221.17.167,Punjab,Dol pri Ljubljani 

答えて

1

場合」 1回のリクエストですべてを取得し、次にjqを使用して、必要な部分を引き出すことをお勧めします。ここではIPのための完全なJSON出力は、(より多くの例についてhttp://ipinfo.io/developersを参照)です。

$ curl ipinfo.io/8.8.8.8 
{ 
    "ip": "8.8.8.8", 
    "hostname": "google-public-dns-a.google.com", 
    "city": "Mountain View", 
    "region": "California", 
    "country": "US", 
    "loc": "37.3860,-122.0838", 
    "org": "AS15169 Google Inc.", 
    "postal": "94035" 
} 

その後CSVにIP、都市や国を引き出すためJQを使用して:

$ curl -s ipinfo.io/8.8.8.8 | jq -r '[.ip, .city, .country] | @csv' 
"8.8.8.8","Mountain View","US" 

我々はファイルを持っている場合私たちはこれのようにすることができます:

$ cat ips.txt | xargs -I% curl -s http://ipinfo.io/%/json | jq -r '[.ip, .city, .country] | @csv' 
+0

魔法のように動作します。<3 – haytham

関連する問題