summary refs log tree commit diff
path: root/src/util/ipAddress.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-07-01 16:02:54 +0200
committerGitHub <noreply@github.com>2021-07-01 16:02:54 +0200
commit7b31ca10b3c22c923cc1daf28f209c743e6b36fd (patch)
tree542a1f62dc30c96dd6e178c472e0382e67fd3be0 /src/util/ipAddress.ts
parent:construction: rate limit (diff)
parent:sparkles: finished Rate Limit (diff)
downloadserver-7b31ca10b3c22c923cc1daf28f209c743e6b36fd.tar.xz
Merge pull request #162 from fosscord/feat--rate-limit
[Feature] Rate Limit
Diffstat (limited to 'src/util/ipAddress.ts')
-rw-r--r--src/util/ipAddress.ts15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/util/ipAddress.ts b/src/util/ipAddress.ts

index 74090d61..f2c8fd4d 100644 --- a/src/util/ipAddress.ts +++ b/src/util/ipAddress.ts
@@ -1,13 +1,7 @@ import { Config } from "@fosscord/server-util"; import { Request } from "express"; // use ipdata package instead of simple fetch because of integrated caching -import IPData, { LookupResponse } from "ipdata"; - -var ipdata: IPData; -const cacheConfig = { - max: 1000, // max size - maxAge: 1000 * 60 * 60 * 24 // max age in ms (i.e. one day) -}; +import fetch from "node-fetch"; const exampleData = { ip: "", @@ -66,15 +60,14 @@ const exampleData = { status: 200 }; -export async function IPAnalysis(ip: string): Promise<LookupResponse> { +export async function IPAnalysis(ip: string): Promise<typeof exampleData> { const { ipdataApiKey } = Config.get().security; if (!ipdataApiKey) return { ...exampleData, ip }; - if (!ipdata) ipdata = new IPData(ipdataApiKey, cacheConfig); - return await ipdata.lookup(ip); + return (await fetch(`https://api.ipdata.co/${ip}?api-key=${ipdataApiKey}`)).json(); } -export function isProxy(data: LookupResponse) { +export function isProxy(data: typeof exampleData) { if (!data || !data.asn || !data.threat) return false; if (data.asn.type !== "isp") return true; if (Object.values(data.threat).some((x) => x)) return true;