|
|
@@ -0,0 +1,41 @@
|
|
|
+import asyncio
|
|
|
+from wbb import app
|
|
|
+from pyrogram import filters
|
|
|
+from pyrogram.types import Message
|
|
|
+from wbb.utils import http
|
|
|
+
|
|
|
+
|
|
|
+# For /help menu
|
|
|
+__MODULE__ = "iplookup"
|
|
|
+__HELP__ = """
|
|
|
+/iplookup [ip address] to get the details about that ip
|
|
|
+"""
|
|
|
+
|
|
|
+
|
|
|
+@app.on_message(~filters.edited & filters.command("iplookup"))
|
|
|
+async def ip_lookup(_, message: Message):
|
|
|
+ if len(message.command) < 2:
|
|
|
+ return await message.reply_text("ip address is missing")
|
|
|
+ ip_address = message.command[1]
|
|
|
+ msg = await message.reply_text("checking ip address...")
|
|
|
+ try:
|
|
|
+ res = await http.get(f"https://ipinfo.io/{ip_address}/json", timeout=5)
|
|
|
+ except asyncio.TimeoutError:
|
|
|
+ return await message.reply_text("request timeout")
|
|
|
+ except Exception as e:
|
|
|
+ return await message.reply_text(f"ERROR: `{e}`")
|
|
|
+ hostname = res.get("hostname", "N/A")
|
|
|
+ city = res.get("city", "N/A")
|
|
|
+ region = res.get("region", "N/A")
|
|
|
+ country = res.get("country", "N/A")
|
|
|
+ location = res.get("loc", "N/A")
|
|
|
+ org = res.get("org", "N/A")
|
|
|
+ await msg.edit((
|
|
|
+ f"**Details of `{ip_address}`**\n\n"
|
|
|
+ f"HostName: `{hostname}`\n"
|
|
|
+ f"City: `{city}`\n"
|
|
|
+ f"Region: `{region}`\n"
|
|
|
+ f"Country: `{country}`\n"
|
|
|
+ f"Org: `{org}`\n"
|
|
|
+ f"Map: https://www.google.fr/maps?q={location}\n"
|
|
|
+ ), disable_web_page_preview=True)
|