improve(commands|Network>iplocalise): rewrite
This commit is contained in:
parent
d66bec65ae
commit
dd09a53c0e
2 changed files with 52 additions and 54 deletions
|
@ -65,3 +65,36 @@ async def get_ipinfo_result(
|
||||||
return (await handler.getDetails(ip_address)).all
|
return (await handler.getDetails(ip_address)).all
|
||||||
except RequestQuotaExceededError:
|
except RequestQuotaExceededError:
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
||||||
|
def merge_ipinfo_ipwhois(ipinfo_result: dict, ipwhois_result: dict) -> dict:
|
||||||
|
output = {"belongs": "N/A", "rir": "N/A", "region": "N/A", "flag": "N/A"}
|
||||||
|
|
||||||
|
if ipinfo_result:
|
||||||
|
org = ipinfo_result.get("org", "")
|
||||||
|
asn = org.split()[0]
|
||||||
|
|
||||||
|
output["belongs"] = f"[{org}](https://bgp.he.net/{asn})"
|
||||||
|
output["rir"] = f"```{ipwhois_result.get('asn_registry', 'N/A')}```"
|
||||||
|
output["region"] = (
|
||||||
|
f"```{ipinfo_result.get('city', 'N/A')} - "
|
||||||
|
f"{ipinfo_result.get('region', 'N/A')} "
|
||||||
|
f"({ipinfo_result.get('country', 'N/A')})```"
|
||||||
|
)
|
||||||
|
output["flag"] = (
|
||||||
|
f"https://www.countryflags.io/{ipinfo_result['country']}"
|
||||||
|
f"/shiny/64.png"
|
||||||
|
)
|
||||||
|
elif ipwhois_result:
|
||||||
|
org = ipwhois_result.get("asn_description", "N/A")
|
||||||
|
asn = ipwhois_result.get("asn", "N/A")
|
||||||
|
asn_country = ipwhois_result.get("asn_country_code", "N/A")
|
||||||
|
|
||||||
|
output["belongs"] = f"{org} ([AS{asn}](https://bgp.he.net/{asn}))"
|
||||||
|
output["rir"] = f"```{ipwhois_result['asn_registry']}```"
|
||||||
|
output["region"] = f"```{asn_country}```"
|
||||||
|
output[
|
||||||
|
"flag"
|
||||||
|
] = f"https://www.countryflags.io/{asn_country}/shiny/64.png"
|
||||||
|
|
||||||
|
return output
|
||||||
|
|
|
@ -31,6 +31,7 @@ from .functions.utils import (
|
||||||
get_hostname,
|
get_hostname,
|
||||||
get_ipinfo_result,
|
get_ipinfo_result,
|
||||||
get_ipwhois_result,
|
get_ipwhois_result,
|
||||||
|
merge_ipinfo_ipwhois,
|
||||||
)
|
)
|
||||||
|
|
||||||
log = logging.getLogger("tuxbot.cogs.Network")
|
log = logging.getLogger("tuxbot.cogs.Network")
|
||||||
|
@ -85,6 +86,8 @@ class Network(commands.Cog, name="Network"):
|
||||||
None, functools.partial(get_ipwhois_result, ip_address)
|
None, functools.partial(get_ipwhois_result, ip_address)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
merged_results = merge_ipinfo_ipwhois(ipinfo_result, ipwhois_result)
|
||||||
|
|
||||||
e = discord.Embed(
|
e = discord.Embed(
|
||||||
title=_(
|
title=_(
|
||||||
"Information for ``{ip} ({ip_address})``", ctx, self.bot.config
|
"Information for ``{ip} ({ip_address})``", ctx, self.bot.config
|
||||||
|
@ -92,61 +95,23 @@ class Network(commands.Cog, name="Network"):
|
||||||
color=0x5858D7,
|
color=0x5858D7,
|
||||||
)
|
)
|
||||||
|
|
||||||
if ipinfo_result:
|
|
||||||
org = ipinfo_result.get("org", "")
|
|
||||||
asn = org.split()[0]
|
|
||||||
|
|
||||||
e.add_field(
|
e.add_field(
|
||||||
name=_("Belongs to:", ctx, self.bot.config),
|
name=_("Belongs to:", ctx, self.bot.config),
|
||||||
value=f"[{org}](https://bgp.he.net/{asn})",
|
value=merged_results["belongs"],
|
||||||
inline=True,
|
inline=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
if ipwhois_result:
|
|
||||||
e.add_field(
|
e.add_field(
|
||||||
name="RIR :",
|
name="RIR :",
|
||||||
value=f"```{ipwhois_result['asn_registry']}```",
|
value=merged_results["rir"],
|
||||||
inline=True,
|
inline=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
e.add_field(
|
e.add_field(
|
||||||
name=_("Region:", ctx, self.bot.config),
|
name=_("Region:", ctx, self.bot.config),
|
||||||
value=f"```{ipinfo_result.get('city', 'N/A')} - "
|
value=merged_results["region"],
|
||||||
f"{ipinfo_result.get('region', 'N/A')} "
|
|
||||||
f"({ipinfo_result.get('country', 'N/A')})```",
|
|
||||||
inline=False,
|
inline=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
e.set_thumbnail(
|
e.set_thumbnail(url=merged_results["flag"])
|
||||||
url=f"https://www.countryflags.io/{ipinfo_result['country']}"
|
|
||||||
f"/shiny/64.png"
|
|
||||||
)
|
|
||||||
elif ipwhois_result:
|
|
||||||
org = ipwhois_result.get("asn_description", "N/A")
|
|
||||||
asn = ipwhois_result.get("asn", "N/A")
|
|
||||||
asn_country = ipwhois_result.get("asn_country_code", "N/A")
|
|
||||||
|
|
||||||
e.add_field(
|
|
||||||
name=_("Belongs to:", ctx, self.bot.config),
|
|
||||||
value=f"{org} ([AS{asn}](https://bgp.he.net/{asn}))",
|
|
||||||
inline=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
e.add_field(
|
|
||||||
name="RIR :",
|
|
||||||
value=f"```{ipwhois_result['asn_registry']}```",
|
|
||||||
inline=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
e.add_field(
|
|
||||||
name=_("Region:", ctx, self.bot.config),
|
|
||||||
value=f"```{asn_country}```",
|
|
||||||
inline=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
e.set_thumbnail(
|
|
||||||
url=f"https://www.countryflags.io/{asn_country}/shiny/64.png"
|
|
||||||
)
|
|
||||||
|
|
||||||
e.set_footer(
|
e.set_footer(
|
||||||
text=_("Hostname: {hostname}", ctx, self.bot.config).format(
|
text=_("Hostname: {hostname}", ctx, self.bot.config).format(
|
||||||
|
|
Loading…
Reference in a new issue