RWA Contest

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

Previous post Next post
Up