====== What's my source IP as seen from The Internet? ======
Similar listings, etc. found on The Internet:\\
[[https://bushart.org/resource/public-ip-using-dns/]]\\
[[https://52.0.56.137.sslip.io/#experimental]]\\
[[https://sysop.user.uucp.hu/programs/doc/extip.txt]] program: [[https://github.com/bandie91/extip]]\\
Publicly available resources to check:\\
^http 80 ^https 443 ^ IPv ^^ DNS \\ 53 ^ ssh \\ 22 ^ telnet \\ 23 ^notes ^
^ ::: ^ ::: ^ 4 ^ 6 ^ ::: ^ ::: ^ ::: ^ ::: ^
|[[http://1.1.1.1/cdn-cgi/trace]]* |[[https://1.1.1.1/cdn-cgi/trace]] | 4 | - | - | - | - |* http redirects to https, found in text |
|[[http://yourip.app/raw]]* |[[https://yourip.app/raw]] | 4 | 6 | - | - | - |* http redirects to http |
|- |- | 4 | - | U | - | - |port 53535 @kw.bclug.ca my.ip. A |
|- |- | 4 | 6 | y | - | - |@one.one.one.one whoami.cloudflare. TXT CH |
|[[http://ifconfig.co/]] |[[https://ifconfig.co/]] | 4 | 6 | - | - | - | |
|[[http://api.ipregistry.co/?fields=ip&key=tryout]] |[[https://api.ipregistry.co/?fields=ip&key=tryout]] | 4 | 6 | - | - | - |found in text |
|[[http://whatismyip.akamai.com/]] |[[https://whatismyip.akamai.com/]]* | 4 | - | - | - | - |* https cert issue |
|[[http://checkip.amazonaws.com/]] |[[https://checkip.amazonaws.com/]] | 4 | - | - | - | - | |
|[[http://dafuqismyip.com/]]* |[[https://dafuqismyip.com/]] | 4 | 6 | - | - | - |trailing **^**M, * http redirects to https, JavaScript required |
|[[http://myip.dnsomatic.com/]] |[[https://myip.dnsomatic.com/]] | 4 | - | - | - | - | |
|- |- | 4 | 6 | y | - | - |@ns1.google.com. o-o.myaddr.l.google.com. TXT |
|[[http://icanhazip.com/]] |[[https://icanhazip.com/]] | 4 | 6 | - | - | - |https://major.io/icanhazip-com-faq/ |
|[[http://ipv4.icanhazip.com]] |[[http://ipv4.icanhazip.com]] | 4 | - | - | - | - | |
|[[http://ipv6.icanhazip.com]] |[[http://ipv6.icanhazip.com]] | - | 6 | - | - | - | |
|[[http://ip-api.com/json/?fields=query]] |- | 4 | - | - | - | - |found in text, [[https://ip-api.com/docs/api:json]] |
|[[http://ipchicken.com/]]* |[[https://ipchicken.com/]] | 4 | - | - | - | - |* http redirects to https, JavaScript required |
|[[http://ipcow.com/]]* |[[https://ipcow.com/]] | 4 | - | - | - | - |* http redirects to https |
|[[http://ipgoat.com/]]* |[[https://ipgoat.com/]] | 4 | - | - | - | - |* http redirects to https |
|[[http://iphorse.com/]]* |[[https://iphorse.com/]] | 4 | 6 | - | - | - |* http redirects to https |
|[[http://ipmonkey.com/]] |[[https://ipmonkey.com/]] | 4 | - | - | - | - |found in text |
|[[http://ipplz.com/]] |[[https://ipplz.com/]] | 4 | 6 | - | - | - |JavaScript required |
|[[http://ipquail.com/]] |[[https://ipquail.com/]] | 4 | 6 | - | - | - | |
|[[http://4.ipquail.com/]] |[[https://4.ipquail.com/]] | 4 | - | - | - | - | |
|[[http://6.ipquail.com/]] |[[https://6.ipquail.com/]] | - | 6 | - | - | - | |
|[[http://ipunicorn.com/]] |[[https://ipunicorn.com/]] | 4 | - | - | - | - | |
|[[http://ds-whoami.kag2d.com/]] |[[https://ds-whoami.kag2d.com/]]* | 4 | 6 | - | - | - |found in text, * https cert issue |
|[[http://v4-whoami.kag2d.com/]] |[[https://v4-whoami.kag2d.com/]] | 4 | - | - | - | - |found in text |
|[[http://v6-whoami.kag2d.com/]] |[[https://v6-whoami.kag2d.com/]] | - | 6 | - | - | - |found in text, * https cert issue |
|[[http://ip.liquidweb.com/]] |[[https://ip.liquidweb.com/]] | 4 | - | - | - | - |found in text |
|[[http://www.moanmyip.com/]]* |[[https://www.moanmyip.com/]] | 4 | 6 | - | - | - |found in text, * http redirects to https, JavaScript required |
|[[http://myexternalip.com/raw]] |[[https://myexternalip.com/raw]] | 4 | 6 | - | - | - | |
|[[http://sshmyip.com/]] |- | 4 | 6 | - | - | - |found in text |
|- |- | 4 | 6 | y | - | - |@resolver1.opendns.com. myip.opendns.com. A myip.opendns.com. AAAA |
|[[http://telnetmyip.com/]] |- | 4 | 6 | - | - | - |found in text |
|- |- | 4 | 6 | - | - | y |telnetmyip.com found in text, may not reliably return results |
|[[http://simplesniff.com/ip]]* |[[https://simplesniff.com/ip]]* | 4 | - | - | - | - |* http redirects to https, https cert issue |
|- |- | 4 | 6 | - | y | - |sshmyip.com found in text |
|[[http://wgetip.com/]] |[[https://wgetip.com/]] | 4 | 6 | - | - | - | |
|[[http://whatsmyfuckingip.com/]]* |[[https://whatsmyfuckingip.com/]] | 4 | - | - | - | - |found in text, * http redirects to https |
|[[http://whatsmyip.com/]]* |[[https://whatsmyip.com/]] | 4 | 6 | - | - | - |found in text |
|[[http://wtfismyip.com/text]] |[[https://wtfismyip.com/text]] | 4 | 6 | - | - | - | |
|[[http://ipschwein.de/]]* |[[https://ipschwein.de/]] | 4 | - | - | - | - |* http redirects to https |
|[[http://ip.csis.dk/]] |[[https://ip.csis.dk/]] | 4 | - | - | - | - | |
|[[http://myip.dk/]]* |[[https://myip.dk/]] | 4 | 6 | - | - | - |* http redirects to https |
|[[http://ping.eu/]]* |[[https://ping.eu/]] | 4 | - | - | - | - |found in text |
|[[http://my.ip.fi/]] |[[http://my.ip.fi/]] | 4 | 6 | - | - | - | |
|[[http://noc.co.il/]]* |[[https://noc.co.il/]] | 4 | 6 | - | - | - |found in text, * http redirects to https |
|[[http://ifconfig.info/]] |[[https://ifconfig.info/]] | 4 | 6 | - | - | - | |
|[[http://www.monipay.fr/]]* |[[https://www.monipay.fr/]] | 4 | 6 | - | - | - |found in text, * http redirects to https |
|[[http://ifconfig.io/]] |[[https://ifconfig.io/]] | 4 | 6 | - | - | - | |
|[[http://ipconfig.io/]] |[[https://ipconfig.io/]] | 4 | 6 | - | - | - | |
|[[http://ipinfo.io/ip]] |[[https://ipinfo.io/ip]] | 4 | - | - | - | - | |
|- |- | 4 | 6 | y | - | - |https://52.0.56.137.sslip.io/ @ns.sslip.io. ip.sslip.io. TXT |
|[[http://myip.is/]]* |[[https://myip.is/]] | 4 | 6 | - | - | - |found in text, * http redirects to https |
|[[http://eth0.me/]] |[[https://eth0.me/]] | 4 | - | - | - | - | |
|[[http://ident.me/]] |[[https://ident.me/]] | 4 | 6 | - | - | - | |
|[[http://v4.ident.me/]] |[[https://v4.ident.me/]] | 4 | - | - | - | - | |
|[[http://v6.ident.me/]] |[[https://v6.ident.me/]] | - | 6 | - | - | - | |
|[[http://ifconfig.me/]] |[[https://ifconfig.me/]] | 4 | 6 | - | - | - | |
|[[http://ip.me/]] |[[https://ip.me/]] | 4 | 6 | - | - | - | |
|[[http://ip4.me/api/]] |[[https://ip4.me/api/]] | 4 | - | - | - | - |https://ip6.me/docs/ found in text |
|[[http://ip4only.me/api/]] |[[https://ip4only.me/api/]] | 4 | - | - | - | - |https://ip6.me/docs/ found in text |
|[[http://ip6.me/api/]] |[[https://ip6.me/api/]] | 4 | 6 | - | - | - |https://ip6.me/docs/ found in text |
|[[http://ip6only.me/api/]] |[[https://ip6only.me/api/]] | - | 6 | - | - | - |https://ip6.me/docs/ found in text |
|- |- | 4 | - | U | - | - |@update.dynamic.name. my.dynamic.name. A |
|- |- | 4 | 6 | y | - | - |whoami.ds.akahelp.net. TXT [[https://www.akamai.com/blog/developers/introducing-new-whoami-tool-dns-resolver-information]] |
|- |- | 4 | - | y | - | - |whoami.ipv4.akahelp.net. TXT [[https://www.akamai.com/blog/developers/introducing-new-whoami-tool-dns-resolver-information]] |
|- |- | - | 6 | y | - | - |whoami.ipv6.akahelp.net. TXT [[https://www.akamai.com/blog/developers/introducing-new-whoami-tool-dns-resolver-information]] |
|- |- | 4 | - | y | - | - |@ns1-1.akamaitech.net. whoami.akamai.net. A [[https://www.akamai.com/blog/developers/introducing-new-whoami-tool-dns-resolver-information]]|
|[[https://bgpstuff.net/]]* |[[https://bgpstuff.net/]] | 4 | 6 | - | - | - |found in text |
|[[https://ipcow.net/]]* |[[https://ipcow.net/]] | 4 | - | - | - | - |found in text |
|[[http://ipecho.net/ip]] |[[https://ipecho.net/ip]] | 4 | 6 | - | - | - | |
|[[http://ipleak.net/]] |[[https://ipleak.net/]] | 4 | 6 | - | - | - |found in text |
|- |[[https://ipv4.ipparrot.net/]] | 4 | - | - | - | - |http doesn't work for IP |
|- |[[https://ipv6.ipparrot.net/]] | - | 6 | - | - | - |http doesn't work for IP |
|[[http://ip-echo.ripe.net/]] |- | 4 | 6 | - | - | - | |
|[[http://myip.nl/]] |[[https://myip.nl/]] | 4 | - | - | - | - |found in text |
|[[http://tnx.nl/ip]] |[[https://tnx.nl/ip]] | 4 | 6 | - | - | - |found in text |
|[[http://watismijnip.nl/]]* |[[https://watismijnip.nl/]] | 4 | 6 | - | - | - |found in text, * http redirects to https |
|[[http://sjekkip.no/]] |[[https://sjekkip.no/]] | 4 | - | - | - | - | |
|[[http://ip.tyk.nu]] |[[https://ip.tyk.nu]] | 4 | 6 | - | - | - | |
|- |- | 4 | 6 | y | - | - |@one.one.one.one. whoami.cloudflare. TXT CH |
|[[http://www.balug.org/myip]] |[[https://www.balug.org/myip]] | 4 | 6 | - | - | - |[[https://www.wiki.balug.org/wiki/doku.php?id=system:myip_help#http_https]] |
| | | 4 | 6 | - | y | - |myip@balug.org [[https://www.wiki.balug.org/wiki/doku.php?id=system:myip_help#ssh]] |
|[[http://www.ipv4.balug.org/myip]] |[[https://www.ipv4.balug.org/myip]] | 4 | - | - | - | - |[[https://www.wiki.balug.org/wiki/doku.php?id=system:myip_help#http_https]] |
| | | 4 | - | - | y | - |myip@ipv4.balug.org [[https://www.wiki.balug.org/wiki/doku.php?id=system:myip_help#ssh]] |
|[[http://www.ipv6.balug.org/myip]] |[[https://www.ipv6.balug.org/myip]] | - | 6 | - | - | - |[[https://www.wiki.balug.org/wiki/doku.php?id=system:myip_help#http_https]] |
| | | - | 6 | - | y | - |myip@ipv6.balug.org [[https://www.wiki.balug.org/wiki/doku.php?id=system:myip_help#ssh]] |
|[[http://corz.org/ip]]* |[[https://corz.org/ip]] | 4 | - | - | - | - |* http redirects to https |
|[[http://httpbin.dmuth.org/ip]]* |[[https://httpbin.dmuth.org/ip]] | 4 | 6 | - | - | - |found in text, * http redirects to https |
|[[http://httpbin.dmuth.org/ip/v4]]* |[[https://httpbin.dmuth.org/ip/v4]] | 4 | - | - | - | - |found in text, * http redirects to https |
|[[http://httpbin.dmuth.org/ip/v6]]* |[[https://httpbin.dmuth.org/ip/v6]] | - | 6 | - | - | - |found in text, * http redirects to https |
|[[http://checkip.dyndns.org/]] |- | 4 | - | - | - | - |found in text |
|[[http://api.ipify.org/]] |[[https://api.ipify.org/]] | 4 | - | - | - | - | |
|[[http://www.pfsense.org/ip]]* |[[https://www.pfsense.org/ip]] | 4 | 6 | - | - | - |* http redirects to https |
|[[https://ip4.seeip.org/]]* |[[https://ip4.seeip.org/]]* | 4 | - | - | - | - |* http redirects to https, https cert issue |
|[[http://theiplookup.org/]] |[[https://theiplookup.org/]] | 4 | - | - | - | - |found in text |
|[[http://www.whatsmyip.org/]]* |[[https://www.whatsmyip.org/]] | 4 | - | - | - | - |apparently //very// rate limited by source IP, * http redirects to https, JavaScript required |
|[[http://en.wikipedia.org/wiki/Wikipedia:Get_my_IP_address?withJS=MediaWiki:Get-my-ip.js]]*|[[https://en.wikipedia.org/wiki/Wikipedia:Get_my_IP_address?withJS=MediaWiki:Get-my-ip.js]]| 4 | 6 | - | - | - |found in text, JavaScript/ECMAScript required, * http redirects to https |
|[[http://ip.42.pl/raw]] |[[https://ip.42.pl/raw]] | 4 | - | - | - | - | |
|[[http://ifconfig.pro/]] |[[https://ifconfig.pro/]] | 4 | 6 | - | - | - | |
|[[http://ipaddress.sh/]] |[[https://ipaddress.sh/]] | 4 | - | - | - | - | |
|[[http://pry.sh/]] |[[https://pry.sh/]] | 4 | 6 | - | - | - |found in text, /?trace, /1.1.1.1?trace, /2606:4700:4700::64, /8.8.8.8, /google.com |
|[[http://ipv4.pry.sh/]] |[[https://ipv4.pry.sh/]] | 4 | - | - | - | - |found in text, /?trace, /1.1.1.1?trace, /2606:4700:4700::64, /8.8.8.8, /google.com |
|[[http://ipv6.pry.sh/]] |[[https://ipv6.pry.sh/]] | - | 6 | - | - | - |found in text, /?trace, /1.1.1.1?trace, /2606:4700:4700::64, /8.8.8.8, /google.com |
|[[http://self.ip.addr.tools/]] |[[https://self.ip.addr.tools/]] | 4 | - | - | - | - |https://ip.addr.tools/ format of - instead of . then .ip.addr.tools |
|[[http://self6.ip.addr.tools/]] |[[https://self6.ip.addr.tools/]] | - | 6 | - | - | - |https://ip.addr.tools/ format of - instead of : then .ip.addr.tools |
|[[http://myip.addr.tools/]] |[[https://myip.addr.tools/]] | 4 | 6 | - | - | - |https://ip.addr.tools/ |
|[[http://myipv4.addr.tools/]] |[[https://myipv4.addr.tools/]] | 4 | - | - | - | - |https://ip.addr.tools/ |
|[[http://myipv6.addr.tools/]] |[[https://myipv6.addr.tools/]] | - | 6 | - | - | - |https://ip.addr.tools/ |
|- |- | 4 | 6 | U | - | - |https://www.dns.toys/ @dns.toys ip. TXT help. TXT |
|[[http://myip.wtf/text]] |[[https://myip.wtf/text]] | 4 | 6 | - | - | - | |
|[[http://ip.wtf/]] |[[https://ip.wtf/]] | 4 | 6 | - | - | - | |
|[[http://myip.wtf/text]] |[[https://myip.wtf/text]] | 4 | 6 | - | - | - | |
|[[http://ipv4.myip.wtf/text]] |[[https://ipv4.myip.wtf/text]] | 4 | - | - | - | - | |
|[[http://ipv6.myip.wtf/text]] |[[https://ipv6.myip.wtf/text]] | - | 6 | - | - | - | |
===== Example Usage: =====
==== http/https ====
myv4="$(curl -4 -s https://ipv4.balug.org/myip)"
myv6="$(curl -6 -s https://ipv6.balug.org/myip)"
control_M="$(printf '\015')"
for path in \
1.1.1.1/cdn-cgi/trace \
ifconfig.co/ \
whatismyip.akamai.com/ \
dafuqismyip.com/ \
{,ipv4.,ipv6.}icanhazip.com/ \
ipchicken.com/ \
www.moanmyip.com/ \
myexternalip.com/raw \
simplesniff.com/ip \
wgetip.com/ \
whatsmyfuckingip.com/ \
wtfismyip.com/text \
ifconfig.io/ \
ipinfo.io/ip \
ident.me \
ifconfig.me/ \
ip.me/ \
ip{4,6}{,only}.me/api/ \
ipecho.net/plain \
tnx.nl/ip \
ip.tyk.nu/ \
corz.org/ip \
{,ipv{4,6}.}balug.org/myip \
api.ipify.org/ \
ip.42.pl/raw \
{,ipv{4,6}.}pry.sh/ \
{self{,6}.ip,myipv{4,6}}.addr.tools/ \
myip.wtf/text
do
for scheme in http https
do
for v in 4 6
do
case "$v" in
4)
myip="$myv4"
;;
6)
myip="$myv6"
;;
esac
curlopts="-"$v" -m 15 -s"
r=$(curl $curlopts "$scheme://$path")
case "$r" in
"$myip")
echo "\$ curl $curlopts $scheme://$path"
echo $r
;;
"$myip$control_M")
echo "\$ curl $curlopts $scheme://$path"
echo $myip'^M'
;;
*"$myip"*)
echo "\$ curl $curlopts $scheme://$path"
echo $myip found in text
;;
*)
myRE=$(
echo "$myip" |
sed -e 's/[.:]/-/g'
)
printf '%s' "$r" |
if grep "$myRE" >>/dev/null; then
echo "\$ curl $curlopts $scheme://$path"
echo $myip found in text in alternative format
elif [ "$scheme" = https ]; then
curlopts="-$v -k -m 15 -s"
r=$(curl $curlopts "$scheme://$path")
case "$r" in
"$myip")
echo "\$ curl $curlopts $scheme://$path # (https cert issue)"
echo $r
;;
"$myip$control_M")
echo "\$ curl $curlopts $scheme://$path # (https cert issue)"
echo $myip'^M'
;;
*"$myip"*)
echo "\$ curl $curlopts $scheme://$path # (https cert issue)"
echo $myip found in text
;;
*)
myRE=$(
echo "$myip" |
sed -e 's/[.:]/-/g'
)
printf '%s' "$r" |
grep "$myRE" >>/dev/null && {
echo "\$ curl $curlopts $scheme://$path"
echo $myip found in text in alternative format
}
;;
esac
fi
;;
esac
done
done
done; echo '$ '
$ curl -4 -m 15 -s https://1.1.1.1/cdn-cgi/trace
96.86.170.226 found in text
$ curl -4 -m 15 -s http://ifconfig.co/
96.86.170.226
$ curl -6 -m 15 -s http://ifconfig.co/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://ifconfig.co/
96.86.170.226
$ curl -6 -m 15 -s https://ifconfig.co/
2001:470:67:76f::2
$ curl -4 -m 15 -s http://whatismyip.akamai.com/
96.86.170.226
$ curl -4 -k -m 15 -s https://whatismyip.akamai.com/ # (https cert issue)
96.86.170.226
$ curl -4 -m 15 -s https://dafuqismyip.com/
96.86.170.226^M
$ curl -6 -m 15 -s https://dafuqismyip.com/
2001:470:67:76f::2^M
$ curl -4 -m 15 -s http://icanhazip.com/
96.86.170.226
$ curl -6 -m 15 -s http://icanhazip.com/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://icanhazip.com/
96.86.170.226
$ curl -6 -m 15 -s https://icanhazip.com/
2001:470:67:76f::2
$ curl -4 -m 15 -s http://ipv4.icanhazip.com/
96.86.170.226
$ curl -4 -m 15 -s https://ipv4.icanhazip.com/
96.86.170.226
$ curl -6 -m 15 -s http://ipv6.icanhazip.com/
2001:470:67:76f::2
$ curl -6 -m 15 -s https://ipv6.icanhazip.com/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://ipchicken.com/
96.86.170.226 found in text
$ curl -4 -m 15 -s https://www.moanmyip.com/
96.86.170.226 found in text
$ curl -6 -m 15 -s https://www.moanmyip.com/
2001:470:67:76f::2 found in text
$ curl -4 -m 15 -s http://myexternalip.com/raw
96.86.170.226
$ curl -6 -m 15 -s http://myexternalip.com/raw
2001:470:67:76f::2
$ curl -4 -m 15 -s https://myexternalip.com/raw
96.86.170.226
$ curl -6 -m 15 -s https://myexternalip.com/raw
2001:470:67:76f::2
$ curl -4 -k -m 15 -s https://simplesniff.com/ip # (https cert issue)
96.86.170.226
$ curl -4 -m 15 -s http://wgetip.com/
96.86.170.226
$ curl -6 -m 15 -s http://wgetip.com/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://wgetip.com/
96.86.170.226
$ curl -6 -m 15 -s https://wgetip.com/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://whatsmyfuckingip.com/
96.86.170.226 found in text
$ curl -4 -m 15 -s http://wtfismyip.com/text
96.86.170.226
$ curl -6 -m 15 -s http://wtfismyip.com/text
2001:470:67:76f::2
$ curl -4 -m 15 -s https://wtfismyip.com/text
96.86.170.226
$ curl -6 -m 15 -s https://wtfismyip.com/text
2001:470:67:76f::2
$ curl -4 -m 15 -s http://ifconfig.io/
96.86.170.226
$ curl -6 -m 15 -s http://ifconfig.io/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://ifconfig.io/
96.86.170.226
$ curl -6 -m 15 -s https://ifconfig.io/
2001:470:67:76f::2
$ curl -4 -m 15 -s http://ipinfo.io/ip
96.86.170.226
$ curl -4 -m 15 -s https://ipinfo.io/ip
96.86.170.226
$ curl -4 -m 15 -s http://ident.me
96.86.170.226
$ curl -6 -m 15 -s http://ident.me
2001:470:67:76f::2
$ curl -4 -m 15 -s https://ident.me
96.86.170.226
$ curl -6 -m 15 -s https://ident.me
2001:470:67:76f::2
$ curl -4 -m 15 -s http://ifconfig.me/
96.86.170.226
$ curl -6 -m 15 -s http://ifconfig.me/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://ifconfig.me/
96.86.170.226
$ curl -6 -m 15 -s https://ifconfig.me/
2001:470:67:76f::2
$ curl -4 -m 15 -s http://ip.me/
96.86.170.226
$ curl -6 -m 15 -s http://ip.me/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://ip.me/
96.86.170.226
$ curl -6 -m 15 -s https://ip.me/
2001:470:67:76f::2
$ curl -4 -m 15 -s http://ip4.me/api/
96.86.170.226 found in text
$ curl -4 -m 15 -s https://ip4.me/api/
96.86.170.226 found in text
$ curl -4 -m 15 -s http://ip4only.me/api/
96.86.170.226 found in text
$ curl -4 -m 15 -s https://ip4only.me/api/
96.86.170.226 found in text
$ curl -4 -m 15 -s http://ip6.me/api/
96.86.170.226 found in text
$ curl -6 -m 15 -s http://ip6.me/api/
2001:470:67:76f::2 found in text
$ curl -4 -m 15 -s https://ip6.me/api/
96.86.170.226 found in text
$ curl -6 -m 15 -s https://ip6.me/api/
2001:470:67:76f::2 found in text
$ curl -6 -m 15 -s http://ip6only.me/api/
2001:470:67:76f::2 found in text
$ curl -6 -m 15 -s https://ip6only.me/api/
2001:470:67:76f::2 found in text
$ curl -4 -m 15 -s http://ipecho.net/plain
96.86.170.226
$ curl -6 -m 15 -s http://ipecho.net/plain
2001:470:67:76f::2
$ curl -4 -m 15 -s https://ipecho.net/plain
96.86.170.226
$ curl -6 -m 15 -s https://ipecho.net/plain
2001:470:67:76f::2
$ curl -4 -m 15 -s http://tnx.nl/ip
96.86.170.226 found in text
$ curl -6 -m 15 -s http://tnx.nl/ip
2001:470:67:76f::2 found in text
$ curl -4 -m 15 -s https://tnx.nl/ip
96.86.170.226 found in text
$ curl -6 -m 15 -s https://tnx.nl/ip
2001:470:67:76f::2 found in text
$ curl -4 -m 15 -s http://ip.tyk.nu/
96.86.170.226
$ curl -6 -m 15 -s http://ip.tyk.nu/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://ip.tyk.nu/
96.86.170.226
$ curl -6 -m 15 -s https://ip.tyk.nu/
2001:470:67:76f::2
$ curl -4 -m 15 -s https://corz.org/ip
96.86.170.226
$ curl -4 -m 15 -s http://ipv4.balug.org/myip
96.86.170.226
$ curl -4 -m 15 -s https://ipv4.balug.org/myip
96.86.170.226
$ curl -6 -m 15 -s http://ipv6.balug.org/myip
2001:470:67:76f::2
$ curl -6 -m 15 -s https://ipv6.balug.org/myip
2001:470:67:76f::2
$ curl -4 -m 15 -s http://api.ipify.org/
96.86.170.226
$ curl -4 -m 15 -s https://api.ipify.org/
96.86.170.226
$ curl -4 -m 15 -s http://ip.42.pl/raw
96.86.170.226
$ curl -4 -m 15 -s https://ip.42.pl/raw
96.86.170.226
$ curl -4 -m 15 -s http://pry.sh/
96.86.170.226 found in text
$ curl -6 -m 15 -s http://pry.sh/
2001:470:67:76f::2 found in text
$ curl -4 -m 15 -s https://pry.sh/
96.86.170.226 found in text
$ curl -6 -m 15 -s https://pry.sh/
2001:470:67:76f::2 found in text
$ curl -4 -m 15 -s http://ipv4.pry.sh/
96.86.170.226 found in text
$ curl -4 -m 15 -s https://ipv4.pry.sh/
96.86.170.226 found in text
$ curl -6 -m 15 -s http://ipv6.pry.sh/
2001:470:67:76f::2 found in text
$ curl -6 -m 15 -s https://ipv6.pry.sh/
2001:470:67:76f::2 found in text
$ curl -4 -m 15 -s http://self.ip.addr.tools/
96.86.170.226 found in text in alternative format
$ curl -4 -m 15 -s https://self.ip.addr.tools/
96.86.170.226 found in text in alternative format
$ curl -6 -m 15 -s http://self6.ip.addr.tools/
2001:470:67:76f::2 found in text in alternative format
$ curl -6 -m 15 -s https://self6.ip.addr.tools/
2001:470:67:76f::2 found in text in alternative format
$ curl -4 -m 15 -s http://myipv4.addr.tools/
96.86.170.226
$ curl -4 -m 15 -s https://myipv4.addr.tools/
96.86.170.226
$ curl -6 -m 15 -s http://myipv6.addr.tools/
2001:470:67:76f::2
$ curl -6 -m 15 -s https://myipv6.addr.tools/
2001:470:67:76f::2
$ curl -4 -m 15 -s http://myip.wtf/text
96.86.170.226
$ curl -6 -m 15 -s http://myip.wtf/text
2001:470:67:76f::2
$ curl -4 -m 15 -s https://myip.wtf/text
96.86.170.226
$ curl -6 -m 15 -s https://myip.wtf/text
2001:470:67:76f::2
$
==== DNS ====
myv4="$(curl -4 -s https://ipv4.balug.org/myip)" || exit
myv6="$(curl -6 -s https://ipv6.balug.org/myip)" || exit
control_M="$(printf '\015')"
#digopts='+noall +answer +nottl +norecurse'
digopts='+short +norecurse'
for ns_rr_class_types in \
'1.1.1.1 whoami.cloudflare CH TXT' \
'ns1.google.com. o-o.myaddr.l.google.com. IN TXT' \
'resolver1.opendns.com. myip.opendns.com. IN A AAAA' \
'ns.sslip.io. ip.sslip.io. IN TXT' \
'update.dynamic.name. my.dynamic.name. IN A' \
'ns1-1.akamaitech.net. whoami.akamai.net. IN A' \
'one.one.one.one. whoami.cloudflare. CH TXT' \
'dns.toys ip. IN TXT'
do
set -- $ns_rr_class_types
NS="$1"; shift; RR="$1"; shift; CLASS="$1"; shift; TYPES="$*"
for TYPE in $TYPES
do
query="$RR $TYPE $CLASS"
for v in 4 6
do
case "$v" in
4)
myip="$myv4"
;;
6)
myip="$myv6"
;;
esac
r=$(dig @"$NS" $digopts -"$v" $query 2>>/dev/null) &&
case "$r" in
\""$myip"\"|"$myip")
echo "\$ dig @"$NS" $digopts -"$v" $query"
echo $r
;;
*"$myip"*)
echo "\$ dig @"$NS" $digopts -"$v" $query"
printf 'found in text:\n%s\n' "$r"
;;
*)
myRE=$(
echo "$myip" |
sed -e 's/[.:]/-/g'
)
printf '%s' "$r" |
if grep "$myRE" >>/dev/null; then
echo "\$ dig @"$NS" $digopts -"$v" $query"
echo $myip found in text in alternative format
fi
;;
esac
r=$(dig @"$NS" +tcp $digopts -"$v" $query 2>>/dev/null) &&
case "$r" in
\""$myip"\"|"$myip")
echo "\$ dig @"$NS" +tcp $digopts -"$v" $query"
echo $r
;;
*"$myip"*)
echo "\$ dig @"$NS" +tcp $digopts -"$v" $query"
printf 'found in text:\n%s\n' "$r"
;;
*)
myRE=$(
echo "$myip" |
sed -e 's/[.:]/-/g'
)
printf '%s' "$r" |
if grep "$myRE" >>/dev/null; then
echo "\$ dig @"$NS" +tcp $digopts -"$v" $query"
echo $myip found in text in alternative format
fi
;;
esac
done
done
done; echo '$ '
$ dig @1.1.1.1 +short +norecurse -4 whoami.cloudflare TXT CH
"96.86.170.226"
$ dig @1.1.1.1 +tcp +short +norecurse -4 whoami.cloudflare TXT CH
"96.86.170.226"
$ dig @ns1.google.com. +short +norecurse -4 o-o.myaddr.l.google.com. TXT IN
"96.86.170.226"
$ dig @ns1.google.com. +tcp +short +norecurse -4 o-o.myaddr.l.google.com. TXT IN
"96.86.170.226"
$ dig @ns1.google.com. +short +norecurse -6 o-o.myaddr.l.google.com. TXT IN
"2001:470:67:76f::2"
$ dig @ns1.google.com. +tcp +short +norecurse -6 o-o.myaddr.l.google.com. TXT IN
"2001:470:67:76f::2"
$ dig @resolver1.opendns.com. +short +norecurse -4 myip.opendns.com. A IN
96.86.170.226
$ dig @resolver1.opendns.com. +tcp +short +norecurse -4 myip.opendns.com. A IN
96.86.170.226
$ dig @resolver1.opendns.com. +short +norecurse -6 myip.opendns.com. AAAA IN
2001:470:67:76f::2
$ dig @resolver1.opendns.com. +tcp +short +norecurse -6 myip.opendns.com. AAAA IN
2001:470:67:76f::2
$ dig @ns.sslip.io. +short +norecurse -4 ip.sslip.io. TXT IN
"96.86.170.226"
$ dig @ns.sslip.io. +tcp +short +norecurse -4 ip.sslip.io. TXT IN
"96.86.170.226"
$ dig @ns.sslip.io. +short +norecurse -6 ip.sslip.io. TXT IN
"2001:470:67:76f::2"
$ dig @ns.sslip.io. +tcp +short +norecurse -6 ip.sslip.io. TXT IN
"2001:470:67:76f::2"
$ dig @update.dynamic.name. +short +norecurse -4 my.dynamic.name. A IN
96.86.170.226
$ dig @ns1-1.akamaitech.net. +short +norecurse -4 whoami.akamai.net. A IN
96.86.170.226
$ dig @ns1-1.akamaitech.net. +tcp +short +norecurse -4 whoami.akamai.net. A IN
96.86.170.226
$ dig @one.one.one.one. +short +norecurse -4 whoami.cloudflare. TXT CH
"96.86.170.226"
$ dig @one.one.one.one. +tcp +short +norecurse -4 whoami.cloudflare. TXT CH
"96.86.170.226"
$ dig @one.one.one.one. +short +norecurse -6 whoami.cloudflare. TXT CH
"2001:470:67:76f::2"
$ dig @one.one.one.one. +tcp +short +norecurse -6 whoami.cloudflare. TXT CH
"2001:470:67:76f::2"
$ dig @dns.toys +short +norecurse -4 ip. TXT IN
"96.86.170.226"
$ dig @dns.toys +short +norecurse -6 ip. TXT IN
"2001:470:67:76f::2"
$
==== ssh ====
myv4="$(curl -4 -s https://ipv4.balug.org/myip)" || exit
myv6="$(curl -6 -s https://ipv6.balug.org/myip)" || exit
control_M="$(printf '\015')"
for userathost in \
sshmyip.com myip@{,ipv{4,6}.}balug.org
do
for v in 4 6
do
case "$v" in
4)
myip="$myv4"
;;
6)
myip="$myv6"
;;
esac
sshopts="-$v -n -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
r=$(ssh $sshopts $userathost 2>>/dev/null)
case "$r" in
"$myip")
echo "\$ ssh -$v $userathost"
echo $r
;;
"$myip$control_M")
echo "\$ ssh -$v $userathost"
echo $myip'^M'
;;
*"$myip"*)
echo "\$ ssh -$v $userathost"
echo $myip found in text
;;
*)
myRE=$(
echo "$myip" |
sed -e 's/[.:]/-/g'
)
printf '%s' "$r" |
if grep "$myRE" >>/dev/null; then
echo "\$ ssh -$v $userathost"
echo $myip found in text in alternative format
fi
;;
esac
done
done; echo '$ '
$ ssh -4 sshmyip.com
96.86.170.226 found in text
$ ssh -6 sshmyip.com
2001:470:67:76f::2 found in text
$ ssh -4 myip@balug.org
96.86.170.226
$ ssh -6 myip@balug.org
2001:470:67:76f::2
$ ssh -4 myip@ipv4.balug.org
96.86.170.226
$ ssh -6 myip@ipv6.balug.org
2001:470:67:76f::2
$
==== telnet ====
myv4="$(curl -4 -s https://ipv4.balug.org/myip)" || exit
myv6="$(curl -6 -s https://ipv6.balug.org/myip)" || exit
control_M="$(printf '\015')"
for domain in \
telnetmyip.com
do
for v in 4 6
do
case "$v" in
4)
myip="$myv4"
;;
6)
myip="$myv6"
;;
esac
telnetopts="-$v"
r=$(sleep 2 | telnet $telnetopts $domain 2>>/dev/null)
case "$r" in
"$myip")
echo "\$ telnet -$v $domain"
echo $r
;;
"$myip$control_M")
echo "\$ telnet -$v domain"
echo $myip'^M'
;;
*"$myip"*)
echo "\$ telnet -$v $domain"
echo $myip found in text
;;
*)
myRE=$(
echo "$myip" |
sed -e 's/[.:]/-/g'
)
printf '%s' "$r" |
if grep "$myRE" >>/dev/null; then
echo "\$ telnet -$v $domain"
echo $myip found in text in alternative format
fi
;;
esac
done
done; echo '$ '
$ telnet -4 telnetmyip.com
96.86.170.226 found in text
$ telnet -6 telnetmyip.com
2001:470:67:76f::2 found in text
$