diff --git a/.gitignore b/.gitignore index f41795b..067243b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,7 @@ /planning/ /obsolete/ .project -.pydevproject \ No newline at end of file +.pydevproject + +# GFM View files: +*.md.html \ No newline at end of file diff --git a/chaincountdown.py b/chaincountdown.py index 572c247..c3a3b19 100644 --- a/chaincountdown.py +++ b/chaincountdown.py @@ -35,18 +35,18 @@ ''' from config import TIMEOUT -from config import SERVER, BLOCKSPERMINUTE, GENESIS +from config import SERVERS, BLOCKSPERMINUTE, GENESIS import server import urllib2, urllib, json, time -def queryApi(data, pfn): +def queryApiOneServer(data, server): """urlencode data parameters, urlopen, result to json returns (True, json) or (False, error message) """ - url = SERVER[pfn] + "?%s" % urllib.urlencode(data) + url = server + "?%s" % urllib.urlencode(data) try: f=urllib2.urlopen(url, timeout=TIMEOUT) @@ -61,6 +61,13 @@ def queryApi(data, pfn): else: return True, apiResult +def queryApi(data, pfn): + for oneServer in SERVERS[pfn]: + success, result = queryApiOneServer(data, oneServer) + if success: break # as soon as one server delivers, be happy + print "Server '%s' resulted in '%s'. Trying next one ..." % (oneServer, result) + return success, result + def getBlockchainStatus(pfn): "api getBlockchainStatus" data = {"requestType" : "getBlockchainStatus"} diff --git a/config.py b/config.py index 1675fd9..4b0b018 100644 --- a/config.py +++ b/config.py @@ -14,6 +14,7 @@ # coins specifics: +""" SERVER ={ "nxt" : "http://jnxt.org:7876/nxt", # "nxt" : "http://localhost:7876/nxt", @@ -21,6 +22,26 @@ "nhz" : "http://api.nhzcrypto.org:7776/nhz", # "nhz": "http://localhost:7776/nhz", } +""" + +SERVERS ={ + "nxt" : [ + # "http://dummyToCauseTrouble.org:7876/nxt", + "http://jnxt.org:7876/nxt", + "http://nxt.cybermailing.com:7876/nxt", + "http://multi.djaeger.net:7876/nxt", + "http://nxt.sx:7876/nxt", + "http://abctc.vps.nxtcrypto.org:7876/nxt", + "http://daemon.bevolved.net:7876/nxt" + ], + + "nhz" : [ + # "http://dummyToCauseTrouble.org:7776/nhz", + "http://api.nhzcrypto.org:7776/nhz" + ], + # "nhz": "http://localhost:7776/nhz", + } + BLOCKSPERMINUTE = {"nxt": 1 / 1.87, # measured at block height 607838 (see https://nxtforum.org/nrs-releases/nrs-v1-7-4/msg205165/#msg205165 ) "nhz": 1 / 1.72} # measured at block height 539874 diff --git a/server.py b/server.py index 4ada683..2b91e3d 100755 --- a/server.py +++ b/server.py @@ -16,7 +16,7 @@ import chaincountdown, imaging, helpers from config import PORT_NUMBER, INFOPAGE, STYLESHEET, SUGGESTION -from config import SERVER +from config import SERVERS from config import FILENAMEPIC, IMAGETYPES from config import FONTS, IMAGEDEFAULTS, FONTSIZEFOOTER_MIN from config import BASEDIR, TEMPDIRNAME @@ -60,7 +60,7 @@ def parseUrl(self): pfn = o.path.split("/")[1].lower() if pfn =="hz": pfn="nhz" if pfn=="": raise Exception("no platform specified") - if pfn not in SERVER.keys(): + if pfn not in SERVERS.keys(): raise ParsingException(self.NOT_IMPLEMENTED, "Unknown chain. Contact me if you want your coin implemented here.") diff --git a/tools/peerexplorerLookup.py b/tools/peerexplorerLookup.py index 0028d08..d5f029f 100644 --- a/tools/peerexplorerLookup.py +++ b/tools/peerexplorerLookup.py @@ -2,8 +2,11 @@ ''' @title: peerexplorerLookup.py -@summary: Queries peerexplorer for nxt nodes with open API, - then looks up the domainnames for all results. +@summary: NXT: Queries peerexplorer for nxt nodes with open API. + HZ: Queries localhost for 'getPeers' + + BOTH: Then looks up the domainnames for all results, + and does fancy sorting: Final table is: * sorted by domain, in cool ordering: from TLD to the front @@ -12,7 +15,7 @@ @related: Made for chaincountdown.py when jnxt.org was down. https://github.com/altsheets/chaincountdown -@version: v0.14 +@version: v0.15 @since: 2016/01/23 @author: AltSheets @@ -41,16 +44,18 @@ import urllib2, urlparse, json, socket, threading, timeit +TIMEOUT=8 -def queryPeerexplorer(server="http://www.peerexplorer.com", command="/api_openapi"): +def queryAPI(server="http://www.peerexplorer.com", command="/api_openapi", timeout=TIMEOUT): """get all IP addresses""" url=urlparse.urljoin(server, command) # print url try: - f=urllib2.urlopen(url) + f=urllib2.urlopen(url, timeout=timeout) answer = f.read() f.close() + # print answer apiResult = json.loads(answer) except Exception as e: return False, e @@ -126,18 +131,9 @@ def sortIPaddresses(ips): for i in range(len(ips)): ips[i] = ips[i].replace(" ", "") -def makeNXTnodesTable(): - """Put everything together: Query peerexplorer, query DNS, sort, print""" - - command="/api_openapi" - IPs = queryPeerexplorer(command=command) - - if not IPs[0]: - print "peerexplorer didn't want to play with me: ", IPs[1] - return False +def nodesTableWithDomainNames(IPs): + """Put everything together: Query DNS, sort, print""" - IPs=IPs[1]["peers"] - print "Got %d node IPs from Peerexplorer, for command %s" % (len(IPs), command) print "Now looking up domain names, patience please ..." NXTnodes=lookupIPs(IPs) @@ -156,10 +152,77 @@ def makeNXTnodesTable(): for IP in noDomains: print "%15s" % IP - return True -if __name__=="__main__": - makeNXTnodesTable() +def nodesTableWithDomainNames_NXT(): + """Query peerexplorer, then IP-->DNS table""" + + command="/api_openapi" + IPs = queryAPI(command=command) + + if not IPs[0]: + print "peerexplorer didn't want to play with me: ", IPs[1] + return False + + IPs=IPs[1]["peers"] + print "Got %d node IPs from Peerexplorer, for command %s" % (len(IPs), command) + + nodesTableWithDomainNames(IPs) + + +def findHZnodes(hzserver="http://localhost:7776"): + + success, peers=queryAPI(server=hzserver, command="/nhz?requestType=getPeers") + if not success: + print "%s didn't want to play with me: %s" % (hzserver, peers) + return False + + peers=peers["peers"] + print "Got %d peers from %s, now checking which ones have open API ..." % (len(peers), hzserver) + print "Patience please, timeout is %d seconds." % TIMEOUT + + started=timeit.default_timer() + + def openAPIthread(IP, openAPI, printLock): + "check :7776, then print (with printLock = in orderly fashion)" + + hzserver="http://%s:7776" % IP + success, test=queryAPI(server=hzserver, command="/nhz?requestType=getMyInfo") + + answerTime=timeit.default_timer()-started + printLock.acquire() + print "(%.3fs) %27s: %s" % (answerTime, hzserver, success) + printLock.release() + if success: openAPI.append(IP) + + openAPI=[] + threads, printLock=[], threading.Lock() + for IP in peers: + t=threading.Thread(target=openAPIthread, args=(IP, openAPI, printLock)) + threads.append(t) + for t in threads: t.start() + for t in threads: t.join() + + print "Ready. Found %d nodes with open API." % len(openAPI) + # print openAPI + + return openAPI + + + +def nodesTableWithDomainNames_HZ(): + """Query localhost for peers, then IP-->DNS table""" + + openAPI_IPs = findHZnodes() + print + nodesTableWithDomainNames(openAPI_IPs) + print "These are all IPs with open API!" + + +if __name__=="__main__": + print ("-" * 50 + "\n") * 2 + "\nNXT:\n\n" + ("-" * 50 + "\n") * 2 + nodesTableWithDomainNames_NXT() + print ("-" * 50 + "\n") * 2 + "\nHZ :\n\n" + ("-" * 50 + "\n") * 2 + nodesTableWithDomainNames_HZ() \ No newline at end of file diff --git a/tools/peerexplorerLookup.py.txt b/tools/peerexplorerLookup.py.txt index bc419c7..ceaecd5 100644 --- a/tools/peerexplorerLookup.py.txt +++ b/tools/peerexplorerLookup.py.txt @@ -1,60 +1,60 @@ -Got 48 node IPs from Peerexplorer, for command /api_openapi +-------------------------------------------------- +-------------------------------------------------- -Now looking up domain names, patience please ... +NXT: -(0.0193s) 192.3.196.10: 192-3-196-10-host.colocrossing.com -(0.0197s) 52.28.97.208: ec2-52-28-97-208.eu-central-1.compute.amazonaws.com -(0.0201s) 62.194.6.113: h6113.upc-h.chello.nl -(0.0225s) 62.75.159.113: vader.cybermailing.com -(0.0226s) 76.176.202.107: cpe-76-176-202-107.san.res.rr.com -(0.0233s) 162.243.122.251: jefdiesel.vps.nxtcrypto.org -(0.0235s) 80.86.92.70: nxt.cybermailing.com -(0.0238s) 37.187.96.196: humanoide.thican.net -(0.0241s) 62.75.145.171: euve35997.vserver.de -(0.0250s) 91.239.69.78: 91.239.69.78.delfintelecom.ru -(0.0264s) 69.163.47.173: host4.topserver4.com -(0.0268s) 176.31.167.127: 127.ip-176-31-167.eu -(0.0270s) 82.0.250.119: cpc80669-stap13-2-0-cust118.12-2.cable.virginm.net -(0.0295s) 174.140.167.239: abctc.vps.nxtcrypto.org -(0.0345s) 80.150.243.95: multi.djaeger.net -(0.0347s) 85.25.198.120: astra2991.server4you.de -(0.0354s) 62.57.18.152: 62.57.18.152.dyn.user.ono.com -(0.0356s) 146.185.168.142: nxt.sx -(0.0366s) 178.150.207.53: 53.207.150.178.triolan.net -(0.0383s) 198.27.81.25: ai.lasthop.ca -(0.0388s) 198.46.193.111: 111-193-46-198.openvirtuals.com -(0.0392s) 198.105.223.72: 198.105.223.72.static.midphase.com -(0.0395s) 5.9.180.173: daemon.bevolved.net -(0.0403s) 188.165.250.19: megaman.thican.net -(0.0406s) 134.119.24.206: j115824.servers.jiffybox.net -(0.0409s) 52.29.122.21: ec2-52-29-122-21.eu-central-1.compute.amazonaws.com -(0.0416s) 167.114.113.250: 250.ip-167-114-113.net -(0.0418s) 192.99.151.160: ps10.bitcoindark.ca -(0.0420s) 167.114.113.197: ps12.bitcoindark.ca -(0.0422s) 167.114.96.223: ps11.bitcoindark.ca -(0.0425s) 91.202.253.240: qob.pp.ua -(0.0427s) 167.114.113.25: 25.ip-167-114-113.net -(4.5226s) 69.163.40.132: -(4.5227s) 104.193.41.253: -(4.5245s) 178.33.203.157: -(4.5265s) 94.102.50.75: -(4.5265s) 192.227.136.194: -(4.5295s) 91.235.72.49: -(4.5295s) 80.150.243.13: -(4.5315s) 80.150.243.98: -(4.5316s) 80.150.243.99: -(4.5344s) 80.150.243.97: -(4.5345s) 80.150.243.12: -(4.5365s) 80.150.243.96: -(4.5374s) 91.205.131.95: -(4.5394s) 95.215.47.221: -(4.5414s) 46.101.239.121: -(4.5425s) 158.69.33.172: +-------------------------------------------------- +-------------------------------------------------- -Ready. For 32 of the 48 I got domain names. +Got 44 node IPs from Peerexplorer, for command /api_openapi +Now looking up domain names, patience please ... +(0.0213s) 62.75.159.113: vader.cybermailing.com +(0.0215s) 192.3.196.10: 192-3-196-10-host.colocrossing.com +(0.0223s) 62.194.6.113: h6113.upc-h.chello.nl +(0.0225s) 76.176.202.107: cpe-76-176-202-107.san.res.rr.com +(0.0227s) 162.243.122.251: jefdiesel.vps.nxtcrypto.org +(0.0262s) 80.86.92.70: nxt.cybermailing.com +(0.0265s) 37.187.96.196: humanoide.thican.net +(0.0276s) 69.163.47.173: host4.topserver4.com +(0.0278s) 62.75.145.171: euve35997.vserver.de +(0.0282s) 82.0.250.119: cpc80669-stap13-2-0-cust118.12-2.cable.virginm.net +(0.0289s) 176.31.167.127: 127.ip-176-31-167.eu +(0.0300s) 174.140.167.239: abctc.vps.nxtcrypto.org +(0.0303s) 178.150.207.53: 53.207.150.178.triolan.net +(0.0322s) 80.150.243.95: multi.djaeger.net +(0.0369s) 62.57.18.152: 62.57.18.152.dyn.user.ono.com +(0.0372s) 146.185.168.142: nxt.sx +(0.0374s) 52.28.97.208: ec2-52-28-97-208.eu-central-1.compute.amazonaws.com +(0.0377s) 91.239.69.78: 91.239.69.78.delfintelecom.ru +(0.0385s) 198.27.81.25: ai.lasthop.ca +(0.0421s) 198.46.193.111: 111-193-46-198.openvirtuals.com +(0.0424s) 198.105.223.72: 198.105.223.72.static.midphase.com +(0.0429s) 5.9.180.173: daemon.bevolved.net +(0.0431s) 188.165.250.19: megaman.thican.net +(0.0438s) 52.29.122.21: ec2-52-29-122-21.eu-central-1.compute.amazonaws.com +(0.0446s) 167.114.96.223: ps11.bitcoindark.ca +(0.0447s) 192.99.151.160: ps10.bitcoindark.ca +(0.0450s) 167.114.113.197: ps12.bitcoindark.ca +(0.0451s) 167.114.113.25: 25.ip-167-114-113.net +(4.5251s) 69.163.40.132: +(4.5260s) 178.33.203.157: +(4.5269s) 104.193.41.253: +(4.5299s) 192.227.136.194: +(4.5300s) 94.102.50.75: +(4.5319s) 80.150.243.97: +(4.5329s) 80.150.243.12: +(4.5330s) 91.235.72.49: +(4.5339s) 80.150.243.98: +(4.5369s) 80.150.243.13: +(4.5370s) 80.150.243.96: +(4.5371s) 80.150.243.99: +(4.5399s) 91.205.131.95: +(4.5418s) 95.215.47.221: +(4.5439s) 46.101.239.121: +(4.5469s) 158.69.33.172: +Ready. For 28 of the 44 I got domain names. Now everything again, sorted. Domain names first, then IP-address-only: - 192.99.151.160: ps10.bitcoindark.ca 167.114.96.223: ps11.bitcoindark.ca 167.114.113.197: ps12.bitcoindark.ca @@ -69,14 +69,11 @@ Now everything again, sorted. Domain names first, then IP-address-only: 198.46.193.111: 111-193-46-198.openvirtuals.com 76.176.202.107: cpe-76-176-202-107.san.res.rr.com 69.163.47.173: host4.topserver4.com - 85.25.198.120: astra2991.server4you.de 62.75.145.171: euve35997.vserver.de 176.31.167.127: 127.ip-176-31-167.eu 5.9.180.173: daemon.bevolved.net 80.150.243.95: multi.djaeger.net 167.114.113.25: 25.ip-167-114-113.net -167.114.113.250: 250.ip-167-114-113.net - 134.119.24.206: j115824.servers.jiffybox.net 37.187.96.196: humanoide.thican.net 188.165.250.19: megaman.thican.net 178.150.207.53: 53.207.150.178.triolan.net @@ -86,7 +83,6 @@ Now everything again, sorted. Domain names first, then IP-address-only: 162.243.122.251: jefdiesel.vps.nxtcrypto.org 91.239.69.78: 91.239.69.78.delfintelecom.ru 146.185.168.142: nxt.sx - 91.202.253.240: qob.pp.ua 46.101.239.121 69.163.40.132 80.150.243.12 @@ -103,3 +99,559 @@ Now everything again, sorted. Domain names first, then IP-address-only: 158.69.33.172 178.33.203.157 192.227.136.194 +-------------------------------------------------- +-------------------------------------------------- + +HZ : + +-------------------------------------------------- +-------------------------------------------------- + +Got 422 peers from http://localhost:7776, now checking which ones have open API ... +Patience please, timeout is 8 seconds. +(0.122s) http://85.214.37.185:7776: True +(0.128s) http://40.115.9.55:7776: True +(0.156s) http://194.135.88.1:7776: True +(0.192s) http://161.53.40.242:7776: True +(0.262s) http://194.135.89.218:7776: True +(0.266s) http://178.150.207.53:7776: True +(0.333s) http://185.38.44.174:7776: True +(0.358s) http://150.107.225.218:7776: True +(0.374s) http://159.203.76.78:7776: True +(0.409s) http://193.198.102.245:7776: True +(0.413s) http://194.135.88.20:7776: True +(0.429s) http://198.154.60.183:7776: False +(0.433s) http://178.33.14.208:7776: True +(0.434s) http://85.214.18.69:7776: True +(0.435s) http://193.198.102.53:7776: True +(0.436s) http://193.198.102.54:7776: True +(0.440s) http://45.55.81.226:7776: True +(0.442s) http://194.135.89.18:7776: True +(0.446s) http://193.198.102.52:7776: True +(0.459s) http://192.227.239.69:7776: True +(0.460s) http://52.24.85.12:7776: True +(0.465s) http://194.135.91.6:7776: True +(0.470s) http://193.198.102.32:7776: True +(0.474s) http://70.118.207.119:7776: True +(0.482s) http://193.198.102.246:7776: True +(0.499s) http://192.227.163.233:7776: True +(0.530s) http://52.24.16.77:7776: True +(0.546s) http://45.55.79.49:7776: True +(0.547s) http://138.128.169.227:7776: True +(0.557s) http://54.201.121.58:7776: True +(0.559s) http://173.232.15.176:7776: True +(0.572s) http://52.24.187.95:7776: True +(0.585s) http://176.126.245.17:7776: True +(0.596s) http://194.135.88.140:7776: True +(0.625s) http://104.236.83.233:7776: False +(0.642s) http://194.135.92.93:7776: True +(0.646s) http://52.24.142.13:7776: True +(0.660s) http://52.27.145.90:7776: True +(0.688s) http://159.203.119.139:7776: True +(0.717s) http://52.32.66.50:7776: True +(0.719s) http://23.245.7.15:7776: True +(0.723s) http://52.24.108.223:7776: True +(0.734s) http://45.55.157.54:7776: True +(0.747s) http://107.155.89.207:7776: True +(0.782s) http://198.154.60.61:7776: False +(0.866s) http://107.161.81.146:7776: True +(0.870s) http://107.161.81.142:7776: True +(1.195s) http://131.72.138.250:7776: False +(1.218s) http://85.214.238.143:7776: False +(1.240s) http://37.120.160.148:7776: False +(1.281s) http://143.177.26.246:7776: False +(1.352s) http://185.32.157.18:7776: False +(1.357s) http://185.32.156.39:7776: False +(1.357s) http://185.32.156.38:7776: False +(1.375s) http://185.32.156.44:7776: False +(1.378s) http://185.32.156.46:7776: False +(1.378s) http://185.32.156.42:7776: False +(1.389s) http://185.32.156.47:7776: False +(1.389s) http://185.32.157.22:7776: False +(1.391s) http://185.32.156.36:7776: False +(1.392s) http://185.32.156.35:7776: False +(1.393s) http://185.32.157.29:7776: False +(1.394s) http://185.32.157.19:7776: False +(1.398s) http://185.32.156.45:7776: False +(1.399s) http://185.32.156.37:7776: False +(1.404s) http://185.32.156.41:7776: False +(1.405s) http://185.32.156.43:7776: False +(1.406s) http://194.135.85.170:7776: False +(1.406s) http://185.32.157.26:7776: False +(1.406s) http://185.32.157.24:7776: False +(1.407s) http://185.32.157.23:7776: False +(1.425s) http://185.32.157.21:7776: False +(1.441s) http://185.32.157.59:7776: False +(1.442s) http://185.32.157.58:7776: False +(1.450s) http://185.32.157.56:7776: False +(1.454s) http://185.32.157.51:7776: False +(1.458s) http://185.32.157.52:7776: False +(1.461s) http://66.211.26.55:7776: False +(1.486s) http://185.32.157.77:7776: False +(1.487s) http://185.32.157.76:7776: False +(1.502s) http://192.227.175.158:7776: False +(1.514s) http://5.45.111.215:7776: False +(1.518s) http://192.99.77.148:7776: False +(1.520s) http://85.214.112.215:7776: False +(1.536s) http://185.32.157.99:7776: False +(1.541s) http://192.3.148.171:7776: False +(1.549s) http://185.32.157.95:7776: False +(1.561s) http://185.32.157.94:7776: False +(1.583s) http://185.32.157.154:7776: False +(1.684s) http://185.32.157.104:7776: False +(1.732s) http://193.107.35.234:7776: False +(2.282s) http://113.243.10.88:7776: False +(2.296s) http://222.242.191.99:7776: False +(2.300s) http://113.243.28.123:7776: False +(2.316s) http://113.243.11.85:7776: False +(2.357s) http://113.243.8.29:7776: False +(2.390s) http://113.243.9.38:7776: False +(2.405s) http://113.243.8.48:7776: False +(2.430s) http://113.243.8.199:7776: False +(2.431s) http://113.243.11.9:7776: False +(2.453s) http://113.243.11.5:7776: False +(2.539s) http://61.187.241.162:7776: False +(2.583s) http://113.243.29.47:7776: False +(2.605s) http://113.243.29.19:7776: False +(2.635s) http://113.243.10.187:7776: False +(2.635s) http://113.243.11.240:7776: False +(2.637s) http://113.243.8.206:7776: False +(2.638s) http://113.243.8.150:7776: False +(2.648s) http://113.243.8.105:7776: False +(2.655s) http://113.243.8.153:7776: False +(2.656s) http://113.243.8.147:7776: False +(2.754s) http://113.243.29.169:7776: False +(2.774s) http://113.243.11.205:7776: False +(3.252s) http://185.38.44.173:7776: True +(3.301s) http://81.169.133.57:7776: True +(3.309s) http://178.62.194.195:7776: False +(3.340s) http://194.135.88.81:7776: True +(3.375s) http://193.198.102.51:7776: True +(3.428s) http://161.53.40.94:7776: True +(3.445s) http://31.24.29.221:7776: True +(3.464s) http://194.135.88.186:7776: True +(3.551s) http://85.214.243.229:7776: True +(3.552s) http://138.128.169.220:7776: True +(3.609s) http://81.169.157.223:7776: True +(3.853s) http://159.203.65.55:7776: True +(3.897s) http://52.26.118.234:7776: True +(4.133s) http://162.213.153.7:7776: False +(4.133s) http://104.219.53.3:7776: False +(4.160s) http://92.222.65.40:7776: False +(4.161s) http://185.32.157.57:7776: False +(4.161s) http://185.32.157.98:7776: False +(4.161s) http://185.32.157.147:7776: False +(4.162s) http://138.128.169.91:7776: True +(4.163s) http://138.128.169.44:7776: True +(4.170s) http://185.32.157.27:7776: False +(4.170s) http://185.32.156.40:7776: False +(4.170s) http://185.32.157.60:7776: False +(4.170s) http://85.214.147.237:7776: False +(4.170s) http://185.32.157.30:7776: False +(4.170s) http://185.32.157.28:7776: False +(4.171s) http://185.32.157.20:7776: False +(4.171s) http://185.32.157.150:7776: False +(4.172s) http://185.32.157.25:7776: False +(4.172s) http://37.120.173.114:7776: False +(4.172s) http://185.32.157.143:7776: False +(4.172s) http://185.32.157.152:7776: False +(4.172s) http://185.32.157.149:7776: False +(4.172s) http://188.226.179.119:7776: False +(4.172s) http://185.32.157.81:7776: False +(4.172s) http://23.95.44.142:7776: False +(4.172s) http://185.32.157.148:7776: False +(4.173s) http://69.28.82.75:7776: False +(4.173s) http://185.32.157.153:7776: False +(4.173s) http://198.46.192.106:7776: False +(4.228s) http://185.32.157.100:7776: False +(4.536s) http://185.32.157.103:7776: False +(4.536s) http://185.32.157.105:7776: False +(4.536s) http://158.69.202.70:7776: False +(4.545s) http://185.32.157.102:7776: False +(4.545s) http://185.32.157.101:7776: False +(4.722s) http://120.24.248.20:7776: False +(4.722s) http://113.243.9.33:7776: False +(4.722s) http://113.243.8.177:7776: False +(4.722s) http://113.243.8.97:7776: False +(4.723s) http://113.243.11.38:7776: False +(4.784s) http://113.243.11.47:7776: False +(4.901s) http://113.243.29.236:7776: False +(4.930s) http://113.243.28.188:7776: False +(4.932s) http://61.187.241.206:7776: False +(4.933s) http://113.243.10.159:7776: False +(4.933s) http://113.243.10.234:7776: False +(4.933s) http://113.243.29.50:7776: False +(4.933s) http://113.243.8.9:7776: False +(4.934s) http://113.243.10.231:7776: False +(4.934s) http://113.243.9.171:7776: False +(4.934s) http://113.243.8.137:7776: False +(4.934s) http://113.243.9.106:7776: False +(4.934s) http://113.243.8.163:7776: False +(4.934s) http://113.243.10.246:7776: False +(4.934s) http://113.243.29.36:7776: False +(4.944s) http://113.243.29.105:7776: False +(4.993s) http://113.243.29.153:7776: False +(8.041s) http://223.152.62.187:7776: False +(8.041s) http://113.243.10.82:7776: False +(8.042s) http://161.53.40.130:7776: False +(8.043s) http://113.243.29.198:7776: False +(8.047s) http://223.152.62.170:7776: False +(8.048s) http://113.243.28.254:7776: False +(8.048s) http://113.243.11.62:7776: False +(8.049s) http://113.243.11.78:7776: False +(8.050s) http://113.243.28.132:7776: False +(8.053s) http://223.152.62.165:7776: False +(8.053s) http://61.187.241.195:7776: False +(8.054s) http://113.243.11.76:7776: False +(8.056s) http://61.187.241.197:7776: False +(8.056s) http://61.187.241.194:7776: False +(8.057s) http://113.243.28.242:7776: False +(8.058s) http://61.187.241.191:7776: False +(8.059s) http://61.187.241.193:7776: False +(8.060s) http://113.243.28.246:7776: False +(8.062s) http://113.243.28.247:7776: False +(8.063s) http://61.187.241.192:7776: False +(8.064s) http://113.243.11.89:7776: False +(8.066s) http://223.152.62.155:7776: False +(8.067s) http://223.152.62.159:7776: False +(8.067s) http://5.19.177.22:7776: False +(8.068s) http://113.243.28.118:7776: False +(8.070s) http://113.243.11.93:7776: False +(8.070s) http://223.152.62.145:7776: False +(8.070s) http://113.243.11.95:7776: False +(8.071s) http://130.211.142.219:7776: False +(8.073s) http://113.243.28.101:7776: False +(8.074s) http://142.68.155.233:7776: False +(8.075s) http://78.63.207.76:7776: False +(8.088s) http://113.243.8.24:7776: False +(8.089s) http://113.243.8.25:7776: False +(8.090s) http://223.152.62.245:7776: False +(8.097s) http://113.243.28.204:7776: False +(8.098s) http://113.243.28.205:7776: False +(8.099s) http://77.88.208.12:7776: False +(8.106s) http://113.243.8.38:7776: False +(8.108s) http://223.152.62.229:7776: False +(8.109s) http://223.152.62.107:7776: False +(8.117s) http://61.187.241.247:7776: False +(8.119s) http://61.187.241.243:7776: False +(8.121s) http://113.243.9.11:7776: False +(8.123s) http://61.187.241.250:7776: False +(8.124s) http://61.187.241.131:7776: False +(8.126s) http://61.187.241.130:7776: False +(8.129s) http://61.187.241.137:7776: False +(8.130s) http://61.187.241.136:7776: False +(8.131s) http://113.243.29.94:7776: False +(8.132s) http://113.243.29.97:7776: False +(8.133s) http://61.187.241.132:7776: False +(8.134s) http://61.187.241.253:7776: False +(8.135s) http://61.187.241.135:7776: False +(8.136s) http://113.243.10.16:7776: False +(8.136s) http://54.164.36.118:7776: False +(8.137s) http://113.243.29.91:7776: False +(8.137s) http://113.243.9.28:7776: False +(8.138s) http://61.187.241.142:7776: False +(8.140s) http://61.187.241.225:7776: False +(8.140s) http://185.117.73.106:7776: False +(8.141s) http://98.207.117.83:7776: False +(8.142s) http://61.187.241.224:7776: False +(8.144s) http://61.187.241.228:7776: False +(8.146s) http://185.32.157.54:7776: False +(8.147s) http://185.32.157.53:7776: False +(8.148s) http://113.243.9.35:7776: False +(8.150s) http://185.32.157.55:7776: False +(8.152s) http://113.243.8.61:7776: False +(8.157s) http://185.32.157.50:7776: False +(8.160s) http://50.173.35.180:7776: False +(8.161s) http://61.187.241.238:7776: False +(8.163s) http://61.187.241.232:7776: False +(8.163s) http://54.174.241.182:7776: False +(8.164s) http://107.178.217.48:7776: False +(8.168s) http://61.187.241.231:7776: False +(8.168s) http://61.187.241.233:7776: False +(8.170s) http://113.243.9.44:7776: False +(8.171s) http://113.243.9.42:7776: False +(8.172s) http://52.28.46.180:7776: False +(8.173s) http://61.187.241.241:7776: False +(8.175s) http://113.243.8.176:7776: False +(8.175s) http://61.187.241.240:7776: False +(8.180s) http://185.32.157.62:7776: False +(8.182s) http://61.187.241.169:7776: False +(8.183s) http://31.24.29.144:7776: False +(8.184s) http://113.243.11.19:7776: False +(8.185s) http://113.243.11.16:7776: False +(8.187s) http://113.243.11.15:7776: False +(8.189s) http://113.243.9.57:7776: False +(8.194s) http://185.32.157.79:7776: False +(8.194s) http://113.243.8.84:7776: False +(8.195s) http://61.187.241.174:7776: False +(8.195s) http://61.187.241.173:7776: False +(8.196s) http://61.187.241.171:7776: False +(8.197s) http://61.187.241.170:7776: False +(8.199s) http://113.243.10.55:7776: False +(8.201s) http://61.187.241.177:7776: False +(8.201s) http://113.243.10.53:7776: False +(8.203s) http://113.243.10.50:7776: False +(8.204s) http://61.187.241.179:7776: False +(8.205s) http://113.243.11.26:7776: False +(8.207s) http://52.16.128.175:7776: False +(8.211s) http://113.243.9.67:7776: False +(8.211s) http://113.243.8.95:7776: False +(8.213s) http://61.187.241.184:7776: False +(8.219s) http://61.187.241.180:7776: False +(8.219s) http://185.32.157.80:7776: False +(8.221s) http://61.187.241.182:7776: False +(8.223s) http://61.187.241.144:7776: False +(8.223s) http://61.187.241.147:7776: False +(8.224s) http://61.187.241.143:7776: False +(8.225s) http://61.187.241.146:7776: False +(8.226s) http://113.243.11.39:7776: False +(8.231s) http://61.187.241.153:7776: False +(8.234s) http://61.187.241.159:7776: False +(8.235s) http://113.243.11.42:7776: False +(8.236s) http://61.187.241.154:7776: False +(8.236s) http://130.211.178.56:7776: False +(8.238s) http://223.152.173.33:7776: False +(8.239s) http://113.243.9.87:7776: False +(8.242s) http://61.187.241.163:7776: False +(8.243s) http://61.187.241.160:7776: False +(8.244s) http://113.243.9.176:7776: False +(8.244s) http://113.243.10.193:7776: False +(8.250s) http://113.243.29.24:7776: False +(8.251s) http://113.243.9.181:7776: False +(8.256s) http://113.243.28.59:7776: False +(8.256s) http://113.243.8.125:7776: False +(8.258s) http://113.243.8.246:7776: False +(8.259s) http://113.243.9.186:7776: False +(8.260s) http://113.243.28.42:7776: False +(8.264s) http://5.9.149.197:7776: False +(8.271s) http://113.243.28.47:7776: False +(8.271s) http://110.143.228.78:7776: False +(8.273s) http://89.72.57.246:7776: False +(8.274s) http://113.243.28.74:7776: False +(8.275s) http://113.243.28.73:7776: False +(8.276s) http://113.243.28.76:7776: False +(8.280s) http://113.243.8.226:7776: False +(8.281s) http://178.130.36.81:7776: False +(8.284s) http://113.243.8.104:7776: False +(8.286s) http://113.243.29.30:7776: False +(8.286s) http://113.243.8.225:7776: False +(8.287s) http://113.243.28.62:7776: False +(8.290s) http://113.243.8.218:7776: False +(8.291s) http://113.243.8.210:7776: False +(8.294s) http://61.187.241.205:7776: False +(8.296s) http://61.187.241.200:7776: False +(8.297s) http://85.214.43.71:7776: False +(8.301s) http://61.187.241.209:7776: False +(8.301s) http://79.241.209.184:7776: False +(8.303s) http://99.192.94.44:7776: False +(8.306s) http://113.243.8.165:7776: False +(8.307s) http://113.243.29.69:7776: False +(8.308s) http://61.187.241.213:7776: False +(8.311s) http://61.187.241.210:7776: False +(8.311s) http://113.243.8.162:7776: False +(8.312s) http://61.187.241.212:7776: False +(8.313s) http://61.187.241.211:7776: False +(8.315s) http://61.187.241.219:7776: False +(8.315s) http://113.243.9.148:7776: False +(8.317s) http://113.243.11.193:7776: False +(8.318s) http://113.243.28.89:7776: False +(8.321s) http://113.243.9.155:7776: False +(8.322s) http://113.243.10.251:7776: False +(8.323s) http://113.243.9.152:7776: False +(8.325s) http://178.202.27.14:7776: False +(8.326s) http://113.243.10.138:7776: False +(8.327s) http://167.206.61.3:7776: False +(8.329s) http://113.243.11.189:7776: False +(8.330s) http://113.243.8.148:7776: False +(8.335s) http://113.243.9.168:7776: False +(8.337s) http://52.88.94.131:7776: False +(8.337s) http://113.243.29.102:7776: False +(8.338s) http://113.243.29.103:7776: False +(8.340s) http://52.32.104.97:7776: False +(8.342s) http://113.243.29.78:7776: False +(8.344s) http://5.196.143.14:7776: False +(8.345s) http://194.135.88.110:7776: False +(8.349s) http://113.243.9.214:7776: False +(8.349s) http://223.152.62.219:7776: False +(8.352s) http://192.3.156.15:7776: False +(8.352s) http://84.198.88.87:7776: False +(8.353s) http://113.243.11.165:7776: False +(8.353s) http://113.243.9.3:7776: False +(8.355s) http://223.152.62.211:7776: False +(8.356s) http://113.243.29.120:7776: False +(8.358s) http://113.243.9.229:7776: False +(8.359s) http://113.243.9.228:7776: False +(8.361s) http://85.214.65.220:7776: False +(8.361s) http://113.243.29.248:7776: False +(8.362s) http://113.243.29.130:7776: False +(8.364s) http://113.243.11.139:7776: False +(8.364s) http://223.152.62.50:7776: False +(8.364s) http://113.243.29.135:7776: False +(8.366s) http://113.243.10.210:7776: False +(8.367s) http://113.243.29.138:7776: False +(8.368s) http://113.243.9.116:7776: False +(8.369s) http://223.152.62.24:7776: False +(8.371s) http://113.243.29.140:7776: False +(8.372s) http://113.243.10.207:7776: False +(8.374s) http://113.243.11.143:7776: False +(8.377s) http://113.243.29.144:7776: False +(8.377s) http://113.243.29.146:7776: False +(8.379s) http://113.243.8.7:7776: False +(8.380s) http://113.243.10.222:7776: False +(8.381s) http://113.243.29.9:7776: False +(8.384s) http://113.243.29.8:7776: False +(8.384s) http://113.243.29.151:7776: False +(8.386s) http://113.243.29.152:7776: False +(8.386s) http://79.132.111.195:7776: False +(8.387s) http://178.26.40.105:7776: False +(8.387s) http://113.243.11.136:7776: False +(8.388s) http://113.243.29.6:7776: False +(8.389s) http://113.243.29.4:7776: False +(8.390s) http://113.243.11.119:7776: False +(8.394s) http://113.243.29.162:7776: False +(8.394s) http://113.243.29.161:7776: False +(8.396s) http://113.243.28.12:7776: False +(8.402s) http://113.243.11.125:7776: False +(8.404s) http://113.243.8.200:7776: False +(8.406s) http://113.243.11.123:7776: False +(8.408s) http://113.243.28.184:7776: False +(8.409s) http://113.243.29.164:7776: False +(8.411s) http://91.235.219.148:7776: False +(8.413s) http://113.243.10.200:7776: False +(8.414s) http://113.243.28.9:7776: False +(8.415s) http://113.243.11.235:7776: False +(8.417s) http://113.243.28.31:7776: False +(8.420s) http://185.32.157.123:7776: False +(8.420s) http://185.32.157.124:7776: False +(8.422s) http://113.243.28.21:7776: False +(8.423s) http://113.243.29.189:7776: False +(8.425s) http://223.152.62.71:7776: False +(8.429s) http://185.32.157.122:7776: False +(8.429s) http://185.32.157.125:7776: False +(8.429s) http://192.3.156.18:7776: False +(8.429s) http://113.243.29.192:7776: False +(8.429s) http://223.152.62.74:7776: False +Ready. Found 58 nodes with open API. + +Now looking up domain names, patience please ... +(0.0029s) 85.214.37.185: mail.cochet.de +(0.0062s) 194.135.88.1: 7146.s.time4vps.eu +(0.0067s) 161.53.40.242: castor.riteh.hr +(0.0072s) 194.135.89.218: 7169.s.time4vps.eu +(0.0079s) 178.150.207.53: 53.207.150.178.triolan.net +(0.0127s) 194.135.88.20: 7174.s.time4vps.eu +(0.0165s) 85.214.18.69: eu5.woll-e.net +(0.0173s) 194.135.89.18: 7171.s.time4vps.eu +(0.0194s) 192.227.239.69: 192-227-239-69-host.colocrossing.com +(0.0201s) 52.24.85.12: ec2-52-24-85-12.us-west-2.compute.amazonaws.com +(0.0202s) 194.135.91.6: 7170.s.time4vps.eu +(0.0211s) 70.118.207.119: cpe-70-118-207-119.kc.res.rr.com +(0.0230s) 52.24.16.77: ec2-52-24-16-77.us-west-2.compute.amazonaws.com +(0.0238s) 138.128.169.227: spcr-6.interspireservidores.com.br +(0.0242s) 54.201.121.58: ec2-54-201-121-58.us-west-2.compute.amazonaws.com +(0.0252s) 173.232.15.176: 173-232-15.static.rdns.serverhub.com +(0.0259s) 52.24.187.95: ec2-52-24-187-95.us-west-2.compute.amazonaws.com +(0.0273s) 194.135.88.140: 7176.s.time4vps.eu +(0.0275s) 194.135.92.93: 9205.s.time4vps.eu +(0.0280s) 52.24.142.13: ec2-52-24-142-13.us-west-2.compute.amazonaws.com +(0.0285s) 52.27.145.90: ec2-52-27-145-90.us-west-2.compute.amazonaws.com +(0.0293s) 52.32.66.50: ec2-52-32-66-50.us-west-2.compute.amazonaws.com +(0.0298s) 52.24.108.223: ec2-52-24-108-223.us-west-2.compute.amazonaws.com +(0.0328s) 107.161.81.142: mail2.turboxafiliados.biz +(0.0329s) 107.161.81.146: serv1.care-market.biz +(0.0337s) 81.169.133.57: eu3.woll-e.net +(0.0343s) 194.135.88.81: 7172.s.time4vps.eu +(0.0350s) 161.53.40.94: penguinium.riteh.hr +(0.0355s) 31.24.29.221: acha02.com +(0.0358s) 194.135.88.186: 7175.s.time4vps.eu +(0.0366s) 138.128.169.220: spcr-5.interspireservidores.com.br +(0.0376s) 81.169.157.223: woll-e.net +(0.0382s) 52.26.118.234: ec2-52-26-118-234.us-west-2.compute.amazonaws.com +(0.0388s) 138.128.169.44: mail10.flex04.flexmailing.com.br +(0.2074s) 85.214.243.229: eu2.woll-e.net +(0.2676s) 107.155.89.207: 107-155-89-207-customer-at-wable.com +(4.5058s) 40.115.9.55: +(4.5108s) 185.38.44.174: +(4.5118s) 150.107.225.218: +(4.5137s) 159.203.76.78: +(4.5161s) 178.33.14.208: +(4.5189s) 45.55.81.226: +(4.5249s) 192.227.163.233: +(4.5269s) 45.55.79.49: +(4.5289s) 176.126.245.17: +(4.5309s) 159.203.119.139: +(4.5329s) 23.245.7.15: +(4.5339s) 45.55.157.54: +(4.5369s) 185.38.44.173: +(4.7541s) 193.198.102.53: +(4.7549s) 193.198.102.245: +(4.7550s) 193.198.102.54: +(4.9131s) 159.203.65.55: +(5.2220s) 138.128.169.91: +(6.7861s) 193.198.102.52: +(6.7862s) 193.198.102.51: +(6.7879s) 193.198.102.32: +(7.3022s) 193.198.102.246: +Ready. For 36 of the 58 I got domain names. + +Now everything again, sorted. Domain names first, then IP-address-only: + 107.161.81.146: serv1.care-market.biz + 107.161.81.142: mail2.turboxafiliados.biz + 138.128.169.44: mail10.flex04.flexmailing.com.br +138.128.169.220: spcr-5.interspireservidores.com.br +138.128.169.227: spcr-6.interspireservidores.com.br + 107.155.89.207: 107-155-89-207-customer-at-wable.com + 31.24.29.221: acha02.com + 52.24.108.223: ec2-52-24-108-223.us-west-2.compute.amazonaws.com + 52.24.142.13: ec2-52-24-142-13.us-west-2.compute.amazonaws.com + 52.24.16.77: ec2-52-24-16-77.us-west-2.compute.amazonaws.com + 52.24.187.95: ec2-52-24-187-95.us-west-2.compute.amazonaws.com + 52.24.85.12: ec2-52-24-85-12.us-west-2.compute.amazonaws.com + 52.26.118.234: ec2-52-26-118-234.us-west-2.compute.amazonaws.com + 52.27.145.90: ec2-52-27-145-90.us-west-2.compute.amazonaws.com + 52.32.66.50: ec2-52-32-66-50.us-west-2.compute.amazonaws.com + 54.201.121.58: ec2-54-201-121-58.us-west-2.compute.amazonaws.com + 192.227.239.69: 192-227-239-69-host.colocrossing.com + 70.118.207.119: cpe-70-118-207-119.kc.res.rr.com + 173.232.15.176: 173-232-15.static.rdns.serverhub.com + 85.214.37.185: mail.cochet.de + 194.135.88.1: 7146.s.time4vps.eu + 194.135.89.218: 7169.s.time4vps.eu + 194.135.91.6: 7170.s.time4vps.eu + 194.135.89.18: 7171.s.time4vps.eu + 194.135.88.81: 7172.s.time4vps.eu + 194.135.88.20: 7174.s.time4vps.eu + 194.135.88.186: 7175.s.time4vps.eu + 194.135.88.140: 7176.s.time4vps.eu + 194.135.92.93: 9205.s.time4vps.eu + 161.53.40.242: castor.riteh.hr + 161.53.40.94: penguinium.riteh.hr + 178.150.207.53: 53.207.150.178.triolan.net + 81.169.157.223: woll-e.net + 85.214.243.229: eu2.woll-e.net + 81.169.133.57: eu3.woll-e.net + 85.214.18.69: eu5.woll-e.net + 23.245.7.15 + 40.115.9.55 + 45.55.79.49 + 45.55.81.226 + 45.55.157.54 + 138.128.169.91 +150.107.225.218 + 159.203.65.55 + 159.203.76.78 +159.203.119.139 + 176.126.245.17 + 178.33.14.208 + 185.38.44.173 + 185.38.44.174 +192.227.163.233 + 193.198.102.32 + 193.198.102.51 + 193.198.102.52 + 193.198.102.53 + 193.198.102.54 +193.198.102.245 +193.198.102.246 + +These are all IPs with open API!