diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2022-05-31 17:44:22 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-31 17:44:22 +0900 |
| commit | c05723ca6ad4f17b823662e83ed8b442fe10626a (patch) | |
| tree | f38e26f44e7ef714d37e196a319d7129a0391962 /packages/backend/src/misc/get-ip-hash.ts | |
| parent | chore(meta): label Pull Requests containing tests (#8768) (diff) | |
| download | misskey-c05723ca6ad4f17b823662e83ed8b442fe10626a.tar.gz misskey-c05723ca6ad4f17b823662e83ed8b442fe10626a.tar.bz2 misskey-c05723ca6ad4f17b823662e83ed8b442fe10626a.zip | |
Fix IP address rate limit (#8758)
* Fix IP address rate limit
* CHANGELOG
* Tune getIpHash
Diffstat (limited to 'packages/backend/src/misc/get-ip-hash.ts')
| -rw-r--r-- | packages/backend/src/misc/get-ip-hash.ts | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/packages/backend/src/misc/get-ip-hash.ts b/packages/backend/src/misc/get-ip-hash.ts new file mode 100644 index 0000000000..379325bb13 --- /dev/null +++ b/packages/backend/src/misc/get-ip-hash.ts @@ -0,0 +1,9 @@ +import IPCIDR from 'ip-cidr'; + +export function getIpHash(ip: string) { + // because a single person may control many IPv6 addresses, + // only a /64 subnet prefix of any IP will be taken into account. + // (this means for IPv4 the entire address is used) + const prefix = IPCIDR.createAddress(ip).mask(64); + return 'ip-' + BigInt('0b' + prefix).toString(36); +} |