-
> Это ты сейчас фрагмент чего привел - фрагмент "головной
> программы" ?
Нет, это фрагмент "региональной" программы.
> покажи код приема сообщения от региона...
а там кода как такового нет. Сообщение - это текстовый фарм определенного формата. Смотря какая функция выполняется. Если отсылка опреатору - то простая отправка из региона по почте на конкретный адрес. Если запись в базу, то тоже писал. "Головная программа" - я даже не знаю как сказать. Это просто просмотр переданных данных с фильтрацией по конкретному региону.
-
> Типа чтобы у серверной части - получателя ("головной программы"
> или что там у тебя - не знаю) не болела голова о сортировке
> поступающих отчетов по отправителям.
Эврика !!! Наконец то. Именно так и есть.
> И это вместо того чтобы завести один-единственный почтовый
> ящик, кидать туда
Иногда мы не в силах изменить установленные правила. Организация большая и правила установлены не мной. Я под них только подстраиваюсь.
-
Я бы повесил TCP-Server голове, который по ip-у клиента возвращал почтовый адрес оператора. И у клиента голова не болит, и управляется все в одном месте...
-
> который по ip-у клиента возвращал почтовый адрес оператора
А чем этот вариант будет отличатся от показанного мною выше варианта с массивом адресов и подстановкой нужного в зависимости от определенного IP адреса? Ведь суть от этого не меняется, суть всеравно заключается в первоначальном определении IP адреса региона.
-
Ну сам же сказал, что структуру поменять не можешь... Вот и заплатка соответствующая. Как по хорошему надо делать, уже Сергей сказал.
> А чем этот вариант будет отличатся от показанного мною выше
> варианта с массивом адресов и подстановкой нужного в зависимости
> от определенного IP адреса?
1. адрес будет того интерфейса, с которого произошло соединение (а не IP камеры и т.п.), и не важно, локальный он будет или белый прова, т.к. локальные оказались за NAT-ом, идентифицировать можно...
2. таблица соответствия находится не на многих клиентах, а на одном сервере, и если сегодня Маша ушла в декрет, Лена заболела, а Таня перешла в другой отдел, достаточно будет исправить эту одну табличку, а не устраивать разборки почему письмо ушло не туда, и в срочном порядке править софт n-му клиенту...
-
> Организация большая и правила установлены не мной
Бардак автоматизировать нельзя)
-
> Бардак автоматизировать нельзя)
При случае предложу эту мысль директору на рассмотрение :). Итак мы пришли к тому, что вы советуете разные варианты, ну никак не способы определения IP.
-
Ты проигнорировал [38]
-
Сергей М.
Я не проигнорировал, я просто не понял смысла намека. Что List - это список я и сам знаю, вот что он определяет в контексте приведенного куска кода я не понял как я должен был отреагировать. Если не трудно, продли мысль, только если можно без наводящих вопросов и пр. , дабы не флудить .
-
А может сначала справку внимательнло проштудируешь именно по описанию этого параметра ?
-
> я просто не понял смысла намека. Что List - это список я
> и сам знаю
Ну если это список, значит он может содержать и более одного элемента. Но ты игнорируешь любые потенциально существующие в списке элементы кроме первого, а потом удивляешься почему адресов у интерфейса больше чем ты ожидал)
-
> у интерфейса
у хоста конечно же, а не у интерфейса
-
> Но ты игнорируешь любые потенциально существующие в списке
> элементы кроме первого, а потом удивляешься почему адресов
> у интерфейса больше чем ты ожидал)
Ну да, действительно функция тупо берет первый элемент списка и не важно какой IP будет на его месте. Плохо, что у меня уже пропал интерфейс камеры. Не могу сейчас проверить набор списка. Правда нужно еще подумать как к нему подобраться...
-
> Ну да, действительно функция тупо берет первый элемент списка
Ну так и сделай не "тупо", а по уму - прочитай ВЕСЬ список и ищи в нем адрес, попадающий под твои условия..
> Плохо, что у меня уже пропал интерфейс камеры. Не могу сейчас
> проверить набор списка
Вот ведь трагедия-то)
Ну возьми да установи на время тестирования любой софт, создающий хотя бы один виртуальный сетевой интерфейс !
Оного ж как дерьма за баней существует - возьми хоть тот же Хамачи для пущей наглядности)...
> нужно еще подумать как к нему подобраться
Ты программист или где ?)
Открываешь справку - там все написано ..
-
Структуру HostEnt я обозрел. Чет в разъименованиях запутался.
Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
-
> Чет в разъименованиях запутался
Мдя ..
function GetLocalIPs: String;
const
WSVer = $101;
type
PPInAddr = ^PInAddr;
var
wsaData: TWSAData;
P: PHostEnt;
Buf: array [0..127] of Char;
NextAddrTableItem: PPInAddr;
begin
Result := '';
if WSAStartup(WSVer, wsaData) = 0 then
begin
if GetHostName(@Buf, 128) = 0 then
begin
P := GetHostByName(@Buf);
if P <> nil then
begin
NextAddrTableItem := PPInAddr(p.h_addr_list);
while Assigned(NextAddrTableItem^) do
begin
if Result <> '' then
Result := Result + #13#10;
Result := Result + String(iNet_ntoa(PInAddr(NextAddrTableItem^)^));
Inc(NextAddrTableItem);
end;
end;
end;
WSACleanup;
end;
end;
-
Мдя... Зыж какой же гений сие вообще придумал?
-
За не очень скромное вознаграждение, вылечу вашу контору от гемороя :)
-
> Сергей М. © (19.01.12 16:05) [55]
Спасибю, завтра буду разбираться.