Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!
1 500 ₴

Гєографічна локалізація IP

closed without completion


Задача выглядит так. Нужно ограничить доступ к веб-сайту (https://emmi.azurewebsites.net/) для определённого географического региона. Наверное, с помощью списка нетблоков в конфигурации веб-сервера. Других вариантов пока не вижу, возможно подскажете.


Списки нетблоков мне удалось найти только по странам. Т.е. я могу ограничить доступ для всей Украины, но для части Украины - не могу. А нужна именно часть.


Пришёл к выводу, что нужный мне список придёцца составить самостоятельно на основе баз данных Geo IP Location. В этом задача и состоит. Написать приложение, вытягивающее эти данные из веб в локальную базу данных SQL, и, когда данные по нетблокам будут полны, составить список нетблоков, относящихся к указанному географическому многоугольнику.


Нужно именно приложение, а не готовый список. Наверняка потребуецца решить эту задачу для других регионов, для Беларуси, в частности.


Код частично готов в Visual Studio, C/C++, в частности, использование libcurl и работа с SQL сервером. Делал своими мозгами, но решил использовать freelance. Если есть желание сделать всё самому - то, конечно, ради бога. Разобрацца в чужом коде бывает сложно.


C# и управляемый код для этой задачи, к сожалению, не подходят. Этот Retriver УЖЕ реализован на C#, но работает неприемлемо медленно.


Предоставляю уже написанный код и своё понимание. На C# он уже написан. Т.е. это не бурение в неизвестность, тропа проложена.


IPv4 и IPv6, наверное. Провайдеров IPv6 не так уж много, но они уже есть. Должно быть чёткое исключение региона из числа пользователей сайта.




  1. 1 day1 500 ₴
    Александр Кожевников
     196   0  1

    Могу помочь советом, который мне всегда помогал, у самого была такая же проблема, сам бы сделал, но нет времени, насчёт цены можем договориться в ЛС.

    Russia Cheboksary | 22 September at 16:27 |
  2. 1 day4 703 ₽
    АЛЕКСАНДР АСКЕРКО
     488  verified 

    Добрый день, меня зовут Александр. Я представляю компанию AskerWEB. Мы предоставляем большой спектр услуг, в том числе и по Вашему направлению. У нас работают только профессионалы своего дела, которые обязательно Вам помогут. Обращайтесь к нам!

    Belarus Gomel | 23 September at 04:06 |
  • Максім Пенчук
    22 September at 16:04 |

    Можна подивитися код на C#?

  • Mikola Akbal — project author
    22 September at 16:18 |

    Можно. А что именно интересует? Сложность?

  • Максім Пенчук
    22 September at 16:20 |
    Код
  • Mikola Akbal — project author
    22 September at 16:24 |

    Чі плануєтє викорістовуваті цєй код в інших проектах?

  • Максім Пенчук
    22 September at 16:49 |

    Не планую, просто цікаво, чому C# вас не влаштовує, да трохи програми повільніше виконуються, ну не наскількиж що з C++ буде дуже замітно

  • Mikola Akbal — project author
    22 September at 16:55 |

    Ммм... Да так всё и было, работало быстро. 8 миллионов записей я успел получить. Но после очередного обновления то ли windows то ли студии всё стало очень медленно. Возможности для вмешательства в работу управляемого кода более широкие по сравнению с кодом классическим. Видимо, в Microsoft не хотят, чтобы эта задача была решена. Поэтому пришлось переписывать на C. Да, неудобно, в 10 раз больше кода. Классы .NET - настоящий люкс, но, к сожалению, они не всегда работают.

  • Максім Пенчук
    22 September at 17:00 |

    Шукайте ошибку в самі програмі на C#, фреймворк нормально працює!)

  • Mikola Akbal — project author
    22 September at 17:04 |

    Сорри, если ошибся. Не хотел обидеть.

  • Mikola Akbal — project author
    22 September at 17:05 |

    Просто молчаливая настойчивость в выпытывании кода насторожила

  • Mikola Akbal — project author
    22 September at 17:06 |

    Предложение в силе. Если удастся завести решение на C# - я не против. Мне нужен конечный результат.

  • Mikola Akbal — project author
    22 September at 17:12 |

    Просто, в моей жизни были такие ошибки, и я подумал, что вы совершаете ту же.

    Я как-то хотел похитить механизм выдачи регистрационных ключей одного отчётного приложения, и потом эти ключи продавать вместо владельца. Воровство чистой воды. Уже много времени с тех пор прошло. Теперь понимаю, что ошибался.

  • Mikola Akbal — project author
    22 September at 17:18 |

    Я готов заплатить за поиск ошибки 🙂 

  • Mikola Akbal — project author
    22 September at 19:19 |

    Дякую, Максім. Соррі за підозри.

    Принял решения взять отпуск (по причине отвращения к работе), а после этого выяснить что же не так с решением на C#. Профилирование производительности, наверное, даст ответ на этот вопрос.

  • Mikola Akbal — project author
    22 September at 16:31 |

    Просто, этот код получает данные из веб-интерфейсов баз IP геолокации, которые, вообще говоря, стоят денег. И я не хочу этот код распространять, потому что отнимать чужой хлеб нехорошо. Для себя сделал, потому что не могу позволить себе их купить. Будут инвестиции - наверное, куплю. Но публиковать этот код я не хочу. Почему и возникает вопрос о вашей заинтересованности этим кодом. Приложение, которое я прошу написать, не должно уйти в паблик.

  • Mikola Akbal — project author
    22 September at 16:50 |

    Да, не всегда удаётся играть по всем правилам, но забирать чужой хлеб НЕХОРОШО. Брать стоит не больше, чем это необходимо. И уж конечно не стоит брать чьё-то, что просто легко взять. Это чей-то труд, кто-то потратил на это драгоценное время своей жизни, и хочет получить за это вознаграждение. А тут приходит некто, и просто забирает это себе.

    Я так делал когда-то, а потом понял, что это воровство. А жизнь это видит, конечно же, и отношение к тебе соотвецтвующее. Жизнь у тебя за это отнимает.

  • Максім Пенчук
    22 September at 16:55 |

    Та не планую ніде використовувати цей код!!! Мені списки нетблоков, нетреба , нащо вони мені здалися, нічого я незбираюся красти , просто хтів код поливитися і всьо!

  • Mikola Akbal — project author
    22 September at 17:00 |

    Сорри, если ошибся

  • Mikola Akbal — project author
    22 September at 17:02 |

    Ладно, а как скинуть?

  • Mikola Akbal — project author
    22 September at 16:19 |

    Що самє цікавіть? )

  • Александр Кожевников
    22 September at 17:14 |

    Могу помочь советом 

  • Александр Кожевников
    22 September at 17:16 |

    У самого была такая же проблема, напишите в лс

  • vitaliy valchuk
    22 September at 17:46 |

    Какие страсти))) vpn, мобильный интернет очень даже хорошо ломает весь труд. Есть еще такое понятие как аренда адресов...

  • Mikola Akbal — project author
    22 September at 19:06 |

    Как же решить эту задачу?

  • Mikola Akbal — project author
    22 September at 19:08 |

    У нас вот, яндекс заблокировали, ВКонтакте заблокировали, и большинство юзеров ими больше не пользуюцца. Результат приемлемый.

  • vitaliy valchuk
    22 September at 19:13 |

    со 100%-й уверенностью - никак. Проще использовать готовую  базу IP.  И то фраза "я тебя по IP вычислю" - в наше время не такая уж и актуальная.  Я пытался использовать данных GPS - но это муторно и пользователь должен давать разрешение.  Мобильная опера с функцией "экономия данных" - включает vpn и свой dns. 

  • Антон Южаков
    22 September at 23:09 |

    Ограничить доступ к определённым серверам гораздо проще чем ограничить доступ пользователей из определённого региона.

  • Mikola Akbal — project author
    22 September at 19:13 |

    Есть еще такое понятие как аренда адресов...

    Вы имеете введу DHCP ?

  • vitaliy valchuk
    22 September at 19:16 |

    я имею ввиду что-кто крупный покупает/арендует блок Ip адресов и сдает их в аренду более мелким фирмам. И где их будут использовать завтра - никто не знает.  Писал когда-то плагин под wordpress для привязки к нас. пункту - то столкнулся со всеми этими проблемами. 

  • Mikola Akbal — project author
    22 September at 19:30 |

    Друзья (и не только), спасибо за советы.  Принял решение выяснить проблему в текущей реализации на C#. Посему, проект, наверное, следует считать закрытым. Формально пусть остаёцца открытым - возможно, будут новые интересные комментарии. Ответить на которые смогу лишь вернувшись из отпуска.