我要批量查找IP 详细信息请访问 ipinfo.io http://ipinfo.io/developers/bulk-lookup这是我的代码。$ cat ips.txt | xargs -I% curl http://ipinfo.io/%/region
文件“ips.txt”包含三个 IP 地址,每个地址各占一行:
(1)8.8.8.8
(2)8.8.4.4
(3)1.2.3.4
这仅解析最后一个 IP 地址。它应该给出 (1) 加利福尼亚州 (2) 科罗拉多州 (3) 华盛顿州。我得到以下信息:
卷曲:(3)URL中发现非法字符
卷曲:(3)URL中发现非法字符
华盛顿
如果我只用一个 IP 地址(例如 8.8.8.8)编写 ips.txt,我会得到很好的结果。我认为我的文本文件或我使用 cat 的方式有问题。你能帮我清理代码以便解析所有三个 IP 地址吗?
根据要求,这里是我的设置的详细信息。
$ uname -a
CYGWIN_NT-10.0 OFFICECOMP 2.3.1(0.291/5/3) 2015-11-14 12:44 x86_64 Cygwin
$ curl -V
curl 7.45.0 (x86_64-unknown-cygwin) libcurl/7.45.0 OpenSSL/1.0.2d zlib/1.2.8 lib idn/1.29 libssh2/1.5.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: Debug IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets Metali
总结一下,作为未来参考的一步一步,
Running uname -A
可以显示正在使用的系统,例如显示这里是 Cygwin。
这让我们思考 Windows 与 Linux 的差异。
已知的差异之一是 windows/dos 行结尾。这可以通过以下方法来揭示,以及通常检查文本文件的所有内容:
cat -A ips.txt
现在如果你发现它包含^M
行结尾,就像这里所做的那样,这意味着行结尾是 dos/windows 而不是 *nix 行结尾(这只会显示以$
)
要解决此问题,只需运行
dos2unix ips.txt
现在,如果您使用这个固定的输入文件运行原始命令,CURL 似乎对此很满意并且它可以工作。
也谢谢你 MistaGill,我了解了ipinfo.io
从这篇文章。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)