obihann / archey-osx

An archey script clone for OS X
http://obihann.github.io/archey-osx/
GNU General Public License v2.0
340 stars 123 forks source link

eth0.me is down #65

Open btywoniuk opened 7 years ago

btywoniuk commented 7 years ago

eth0.me is down which makes archey to load with big delay

mnlwsn commented 7 years ago

same. output ⇒ % curl: (7) Failed to connect to eth0.me port 80: Operation timed out % ifconfig: interface eth0(.me) does not exist

anthony-wang commented 7 years ago

Suggestion for an alternative site: IPv4: curl 4.ifcfg.me/ip or curl 4.ipcfg.me/ip IPv6: curl 6.ifcfg.me/ip or curl 6.ipcfg.me/ip

thejeffreystone commented 7 years ago

I switched mine to ifconfig.co

lead0r commented 7 years ago

Same problem here, I am using "archey -o" now but I would like to have a working option with IP address shown

ginobean commented 7 years ago

Alternatively, how about using: ip=$(dig +short myip.opendns.com @resolver1.opendns.com) in place of: ip=$(curl -sS eth0.me)

I think opendns.com has been around for a while and, now being a part of Cisco, can be expected to be around for the foreseeable future..

ginobean commented 7 years ago

Also, if the ipfile length is less than 8, maybe just delete it, since the minimum valid ip is 1.1.1.1, which has at least 8 characters in it..

Here are some changes I made to my local copy, to delete an invalid ip cache file and to use dig and myip.opendns.com over curl. Feel free to use it verbatim, if you wish..

diff --git a/scripts/archey b/scripts/archey
index 3bb1902..6019d40 100755
--- a/scripts/archey
+++ b/scripts/archey
@@ -64,12 +64,18 @@ hostname=$(hostname | sed 's/.local//g')

 if [[ "${opt_offline}" = f ]]; then
     ipfile="${HOME}/.archey-ip"
-    if [ -a "$ipfile" ] && test `find "$ipfile" -mmin -360`; then
+
+    [[ -f $ipfile ]] && iplen=$(wc -c < $ipfile)
+    # remove ipfile if it could not possibly be valid:
+    (( iplen < 8 )) && rm -f $ipfile
+
+    if [ -a "$ipfile" ] && test $(find "$ipfile" -mmin -360); then
         while read -r line; do
             ip="$line"
         done < "$ipfile"
     else
-        ip=$(curl -sS eth0.me)
+        # ip=$(curl -sS eth0.me)
+       ip=$(dig +short myip.opendns.com @resolver1.opendns.com)
         echo $ip > "$ipfile"
     fi
 fi