1

http://www.geoiptool.com/en/?IP=

我需要一些帮助来编写一个允许我将任何给定 IP 传递给该 URL 的 bash 脚本。上面的站点是我想调用我的脚本的 URL。有人可以让我开始吗?谢谢!

我想像这样使用我的脚本:echo IP_ADDRESS | 地理工具

当我回显一个 IP 并将其传送到我的脚本时,我在下面收到此错误。那是因为没有安装管道命令吗?

-bash-3.2$ 回声 173.192.108.135 | geo -bash:回声:写入错误:管道损坏

4

3 回答 3

1

我建议使用命令行参数而不是从标准输入读取。您可以使用 $1 来引用第一个参数,使用 $2 来引用第二个参数,等等。

#!/bin/bash
curl -s http://www.geoiptool.com/en/?IP=$1

然后你只需通过以下方式解雇它:

geoiptool <IP>
于 2012-04-10T13:23:32.093 回答
1

您可以使用该read命令读取stdin地址并将其存储在变量中。然后用于wget发出 HTTP 请求:

read ip
wget http://www.geoiptool.com/en/?IP=$ip
于 2012-04-10T13:14:48.610 回答
1

好的。

您可以使用该read命令从中读取一行stdin并将其分配给一个变量:

read variable
echo "You said: $variable"

并且curl是用于与 HTTP URL 交互的常用命令行工具:

curl http://www.google.com/

(您也可以使用wgetlynx或其他工具,具体取决于您的要求)。

所以一个非常简单的脚本可能看起来像:

URL="http://www.geoiptool.com/en/?IP="
read ipaddr
curl --silent "$URL$ipaddr"
于 2012-04-10T13:15:22.230 回答