首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ipinfo.io生成xargs以在一行中获取信息

使用ipinfo.io生成xargs以在一行中获取信息
EN

Stack Overflow用户
提问于 2017-01-11 17:45:15
回答 1查看 526关注 0票数 1

特定信息标记的http://ipinfo.io入门示例如下所示:

代码语言:javascript
复制
cat ips.txt | xargs -I% curl -s http://ipinfo.io/%/org | paste -d"," ips.txt -

返回:

代码语言:javascript
复制
8.8.8.8,AS15169 Google Inc.
8.8.4.4,AS15169 Google Inc.
1.2.3.4,AS15169 Google Inc.

我想要多个信息,所以我把这里的例子改为:

代码语言:javascript
复制
cat ips.txt | xargs -I% curl -s http://ipinfo.io/%/city http://ipinfo.io/%/region | paste -d"," ips.txt - > ip_info.txt

返回:

代码语言:javascript
复制
156.221.17.167,Punjab
,Dol pri Ljubljani

我如何格式化我的请求,以适应所有与IP相关的信息,用逗号‘分隔的同一行,如下所示:

代码语言:javascript
复制
156.221.17.167,Punjab,Dol pri Ljubljani
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-12 23:14:26

如果您需要多个信息片段,最好是在一个请求中获得所有信息,然后使用jq提取所需的信息片段。下面是IP的完整JSON输出(更多示例请参见http://ipinfo.io/developers ):

代码语言:javascript
复制
$ 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"
}

然后使用jq将IP、城市和国家提取到CSV:

代码语言:javascript
复制
$ curl -s ipinfo.io/8.8.8.8 | jq -r '[.ip, .city, .country] | @csv'
"8.8.8.8","Mountain View","US"

如果我们有一组it文件,我们可以这样做:

代码语言:javascript
复制
$ cat ips.txt | xargs -I% curl -s http://ipinfo.io/%/json | jq -r '[.ip, .city, .country] | @csv'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41597393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档