Created
December 20, 2019 19:27
-
-
Save hlx98007/86dae3acc23a79cbe7fa585216fa980f to your computer and use it in GitHub Desktop.
一个可以在command line下查看归属地的工具,支持域名/IPv4/IPv6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
function valid_ipv6() | |
{ | |
local regex='^([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}$' | |
local var="$1" | |
if [[ $var =~ $regex ]]; then | |
echo 0 | |
else | |
echo 1 | |
fi | |
} | |
function valid_ipv4() | |
{ | |
local ip=$1 | |
local stat=1 | |
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; | |
then | |
OIFS=$IFS | |
IFS='.' | |
ip=($ip) | |
IFS=$OIFS | |
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ | |
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] | |
stat=0 | |
fi | |
echo $stat | |
} | |
function valid_ip() | |
{ | |
if [[ "$(valid_ipv4 $1)" -eq 0 || "$(valid_ipv6 $1)" -eq 0 ]] | |
then | |
echo 0 | |
else | |
echo 1 | |
fi | |
} | |
function lookup() | |
{ | |
echo $1: | |
curl -sL "http://freeapi.ipip.net/$1" -A "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0" | |
echo | |
} | |
# main | |
for i in $*; | |
do | |
if [[ "$(valid_ip $1)" -eq 0 ]] | |
then | |
ip="$i" | |
else | |
ipv4=`dig +short $i | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"` | |
ipv6=`dig +short AAAA $i` | |
fi | |
for p in $ip $ipv4 $ipv6 | |
do | |
lookup $p | |
done | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment