|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.07.2012, 18:33 | #1 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 121
|
Получение разрядов IP адреса.
Приветствую Вас, пишу прогу для проверки проксиков, возникла необходимость удалить все внутресетевые адреса (зарезервированные системой под сеть) то есть:
все адреса диапазонов: Код:
Возникла проблема с получением каждого разряда IP адреса. Например, нужно от другой функции получить первый разряд из аипишника 127.0.0.1 - она должна выдать 127, или например второй разряд из IP 172.24.255.255 должна вернуть 24. Getdischarge(ip:string;discharge:integer):integer; Getdischarge('172.24.255.255',4) - должна вернуть 255. Подскажите пожалуйста, как это можно сделать, или может у кого где валяется готовое решение. Просто я уже голову сломал, запутался в цикле FOR получать значение первой и второй и т.д. точек. Нифига не получается. Заранее спасибо всем за внимание к посту и огромное спасибо всем ответившим. Последний раз редактировалось denis76560; 27.07.2012 в 18:37. |
27.07.2012, 18:46 | #2 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
denis76560
inet_addr - из строки c IP получаешь число далее обычными сдвигами и маской выделяешь нужный октет
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
27.07.2012, 19:00 | #3 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 121
|
Спасибо, но боюсь что мне это не поможет=(
memo4.Lines.Add(inttostr( inet_addr(PAnsiChar(AnsiString('127 .55.66.77'))))); возвращает 1296185215 Это походу дела IP адрес в десятичном виде. А мне нужно сверять каждый рязряд каждого IP адреса с маской фильтра. И если он подходит под правило внутрисетевых адресов - удалять его из списка. |
27.07.2012, 19:07 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Pos, PosEx для нахождения точки в строке, Delete для удаления подстроки из строки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.07.2012, 19:08 | #5 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
denis76560
1296185215 Это походу дела IP адрес в десятичном виде. А мне нужно сверять каждый рязряд каждого IP адреса с маской фильтра. И если он подходит под правило первую строчку моего сообщения ты прочитал и понял правильно. Это уже хорошо :D Теперь со второй. Имеем адрес 127 .55.66.77 и его числовое представление 1296185215 = 0x 4D 42 37 7F переведи каждый из 4х байтов в десятичную форму. сравни с разрядами в строке. подивись. (((Ж
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
28.07.2012, 14:26 | #6 | |
Форумчанин
Регистрация: 11.01.2012
Сообщений: 177
|
Цитата:
Код:
progromore.i2p - первый русскоязычный портал программистов в скрытосети
|
|
30.07.2012, 21:25 | #7 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 121
|
Всем спасибо большое, решено
|
01.08.2012, 13:45 | #8 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 121
|
Всем ответившим ОГРОМНОЕ спасибо (особенно АВАТАР за напоминание о POSEX). Много оказывается разных вариантов решений, просто позабыл давно про POSEX, из-за нее и затупил - просто запутался...
мало-ли нужно кому-то будет - вот фунция: Код:
Последний раз редактировалось denis76560; 01.08.2012 в 13:51. |
02.08.2012, 19:00 | #9 |
Форумчанин
Регистрация: 11.01.2012
Сообщений: 177
|
denis76560, всё можно было сделать в 10 раз проще
Код:
progromore.i2p - первый русскоязычный портал программистов в скрытосети
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разбор map-файла и получение реального адреса функций | GreenWizard | Общие вопросы Delphi | 3 | 14.06.2012 19:57 |
Получение адреса ячейки | Sergey112233 | Microsoft Office Excel | 2 | 04.08.2011 17:08 |
получение ip адреса | the_deer_one | Общие вопросы .NET | 4 | 07.07.2011 14:12 |
Получение IP адреса | Letnab | Работа с сетью в Delphi | 4 | 07.03.2011 15:12 |