Oct 26, 2011 15:47
Тут по моему старому проекту возникла задачка: сделать фильтрацию по диапазонам IP-адресов. Буду делать quick and dirty-реализацию на си с классами, если кто возжелает, может реализовать на своём любимом языке а потом сравним.
Задача такова: есть ASCIIZ-строка с IP-адресом, надо вернуть true, если этот адрес попадает в один из диапазонов, перечисленных в файле.
Файл текстовый такого формата,
192.168.1.3,192.168.1.5
192.168.2.4,193.0.0.3
Файл не отсортирован, дипапазоны произвольные и могут пересекаться. Первый адрес меньше второго или равен ему. Пересечение диапазонов можно обрабатывать двумя путями: лиюо отказываться грузить такой файл и выдавать что с чем пересеклось, либо не отказываться и корректно работать в таких условиях.
Файл грузится один раз и потом десятки миллионов раз лукапится. Записей в конфиге - сотни.
UPD: я не спрашивал, как мне это имплементить - задача школьная. Я просил добровольцев из числа читателей заимплементить это на ФЯ и померить.
fp,
programming