Мы используем базу данных GeoLite2, чтобы реализовать поиск IP ->. По соображениям производительности мы хотим импортировать CSV и преобразовать его в собственный формат.Преобразование записей CIDR в диапазон IP
CSV-представлена следующим образом:
5.39.40.96/27,3017382,3017382,,0,0
5.39.40.128/28,3017382,3017382,,0,0
5.39.40.144/28,2635167,3017382,,0,0
5.39.40.160/27,3017382,3017382,,0,0
5.39.40.192/26,3017382,3017382,,0,0
5.39.41.0/25,3017382,3017382,,0,0
5.39.41.128/26,3017382,3017382,,0,0
5.39.41.192/26,2635167,3017382,,0,0
5.39.42.0/24,3017382,3017382,,0,0
5.39.43.0/25,3017382,3017382,,0,0
Таким образом, мы должны преобразовать CIDR нотации (пример: 5.39.40.96/27
) в IP-адрес диапазона. (от IP - до IP)
Как это можно сделать на C#?
Примечание: Это не дубликат this question, так как я прошу о реализации C# и не Java.
Вау, это действительно хороший ответ! Ваш код настолько короток и точнее. +1! – bytecode77
Вместо '(mask^0xffffffff)' вы можете использовать '~ mask', чтобы сделать то же самое. –