bash将ip地址传递给我脚本中的URL

时间:2012-04-10 13:11:32

标签: bash

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

我需要一些帮助才能编写一个bash脚本,允许我将任何给定的IP传递给此URL。上面的网站是我希望我的脚本调用的URL。有人可以让我开始吗?谢谢!

我想像这样使用我的脚本:echo IP_ADDRESS | geoiptool

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

-bash-3.2 $ echo 173.192.108.135 |地理 -bash:echo:写入错误:管道损坏

3 个答案:

答案 0 :(得分:1)

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

read ip
wget http://www.geoiptool.com/en/?IP=$ip

答案 1 :(得分: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"

答案 2 :(得分:1)

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

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

然后你只需点击它:

geoiptool <IP>