Page MenuHomePhabricator

CheckUser range finder should support IPv6
Closed, ResolvedPublic

Description

ext.checkuser.cidr.js should support IPv6 range search. There's a tool here by @NativeForeigner for this.

Event Timeline

I don't have much free time these days, and I'm in the midst of a job hunt. Also, I'm not particularly great at javascript, but this is on my long term to do list, should I find the time before it's done.

The original tool was really intended to be a command line utility, but I was prompted to port it to web so I did. It's all written in python 3/django, and I had a hell of a time getting django set up on my server. I still need to put it on toolserv/whatever we use these days.

Looks like it actually has all the logic for calculating it written but there's a hardcoded-limit of 96 for IPv6 which seems arbitrary?

Change 284132 had a related patch set uploaded (by Glaisher):
Change limit of 96 to 32 in CIDR calculator for IPv6

https://gerrit.wikimedia.org/r/284132

I don't think anyone has any sort of IPv6 working with that tool. Correct me if I'm wrong but I always assumed there was another issue with the implementation. I'll review in the AM, although I'll have to learn some js in the process.

Change 284132 merged by jenkins-bot:
Change limit of 96 to 32 in CIDR calculator for IPv6

https://gerrit.wikimedia.org/r/284132

Looks like it actually has all the logic for calculating it written but there's a hardcoded-limit of 96 for IPv6 which seems arbitrary?

It was not arbitrary. At the time rSVN47239, 96 was the max limit for IPv6. The patch above changes it to use the current value of $wgCheckUserCIDRLimit['IPv6']. I guess we could later change it to use the value directly from config.

I don't think anyone has any sort of IPv6 working with that tool. Correct me if I'm wrong but I always assumed there was another issue with the implementation. I'll review in the AM, although I'll have to learn some js in the process.

I have tested it and it does work. After the change, it would now work for ranges smaller than /32.

Glaisher claimed this task.

Please reopen if you find that it is not fixed.