Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Coded By Deray
- import requests,bs4,sys
- class ip_geolocation(object):
- def __init__(self,ip):
- self.ip=ip
- self.data=[]
- self.dor=0
- self.realdata=[]
- self.res=[]
- self.fakenum=0
- self.crawl()
- # <-- LOAD BS4 RESPONSE -->
- def crawl(self):
- self.bs=bs4.BeautifulSoup(
- requests.get("https://ipgeolocation.io/ip-location/"+self.ip,
- headers={
- "User-Agent":"Mozilla/5.0 (Linux; Android 5.1)"}).text,"html.parser")
- print "-"*20+self.ip+"-"*20+"\n"
- self._loopdata()
- # <-- LOAD DATA -->
- def _loopdata(self):
- for i in self.bs.find_all("td"):
- self.data.append(i.text)
- self.loop_realdata()
- # <-- FILTERING DATA -->
- def loop_realdata(self):
- for i in self.data:
- self.dor+=1
- if self.dor>18:
- if i =="":
- continue
- self.realdata.append(i.replace("\n",""))
- self._result()
- # <-- GOT RESULT -->
- def _result(self):
- for i in self.realdata:
- self.fakenum+=1
- self.res.append(i)
- if len(self.res) ==2:
- self._map_result(self.res)
- self.res=[]
- # <-- MAP RESULT -->
- def _map_result(self,_data):
- d=list(_data[0])
- for i in range(30):
- if len(d) ==30:
- print "".join(d)+": "+_data[1]
- break
- else:d.append(" ")
- if __name__ =="__main__":
- if len(sys.argv) ==1:print "Ussage: python "+sys.argv[0]+" <ip>"
- elif len(sys.argv) ==2:ip_geolocation(sys.argv[1])
- else:print "Ussage: python "+sys.argv[0]+" <ip>"
Advertisement
Add Comment
Please, Sign In to add comment