Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отправка IP по сети, определение и отправка IP 
:(
    Опции темы
Deee
Дата 9.4.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



Здравствуйте!
у  меня такая ситуация: интернет на двоих, стоит проксисервер. IP компьютеров все время меняются из-за чего приходится менять настройки прокси. Требуется написать программу на Delphi 7, серверная часть которой будет считывать IP моего компьютера (сервера) в данный момент времени и отправлять его на клиентскую часть на соседней машине. 
программу планируется использовать как информер.
возможна ли вообще реализация такого?? или замкнутый круг?
для определения использую такой код (код НЕ МОЙ , - подсмотрел в интернете)
Код

Function LocalIP : string;
type
  TaPInAddr = array [0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe  : PHostEnt;
  pptr : PaPInAddr;
  Buffer : array [0..63] of char;
  I    : Integer;
  GInitData      : TWSADATA;
  a: string;

Begin
  a:='---------------'+#13+'---------------';
  WSAStartup($101, GInitData);
  Result := '';
  GetHostName(Buffer, SizeOf(Buffer));
  phe :=GetHostByName(buffer);
  if phe = nil then Exit;
  pptr := PaPInAddr(Phe^.h_addr_list);
//    Phe^.h_addr_list - должен содержать IPдля всех интерфейсов.
  I := 0;
  while pptr^[I] <> nil do begin
// приводим их по очерёдности к нормальному виду
    Result := Result + StrPas(inet_ntoa(pptr^[I]^)) +#13+a+#13;
    
    Inc(I);
     
  end;
  WSACleanup;
End;




procedure TForm1.FormCreate(Sender: TObject);
begin
RichEdit1.Text:=LocalIP;
end;

End.


PM MAIL   Вверх
~FoX~
Дата 9.4.2010, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Deee, Рассылай бродкастом...
А имен у компьютеров нету?

Это сообщение отредактировал(а) ~FoX~ - 9.4.2010, 20:19


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Deee
Дата 9.4.2010, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



Имена M1(M2 и тд), рабочая группа M
PM MAIL   Вверх
~FoX~
Дата 10.4.2010, 06:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Цитата(Deee @  9.4.2010,  23:34 Найти цитируемый пост)
Имена M1(M2 и тд), рабочая группа M 

Иехххх, молодеж )))
Перемудрил слегка, есть совершенно шикарный уровень модели OSI под номером три и с названием "сетевой@? на котором происходит трансляция физического адреса в логический и соответственно на оборот тоже можно )))
Берем вот такую функцию
Код

function HostToIP(name: string; var Ip: string): Boolean;
var
  wsdata : TWSAData;
  hostName : array [0..255] of char;
  hostEnt : PHostEnt;
  addr : PChar;
begin
  WSAStartup ($0101, wsdata);
  try
    gethostname (hostName, sizeof (hostName));
    StrPCopy(hostName, name);
    hostEnt := gethostbyname (hostName);
    if Assigned (hostEnt) then
      if Assigned (hostEnt^.h_addr_list) then begin
        addr := hostEnt^.h_addr_list^;
        if Assigned (addr) then begin
          IP := Format ('%d.%d.%d.%d', [byte (addr [0]),
          byte (addr [1]), byte (addr [2]), byte (addr [3])]);
          Result := True;
        end
        else
          Result := False;
      end
      else
        Result := False
    else begin
      Result := False;
    end;
  finally
    WSACleanup;
  end
end;

пишем на ее основе прогу, и ставим ее на твоих клиентах. В нужный момент она преобразует имя твоего сервера в его же IP

Это сообщение отредактировал(а) ~FoX~ - 10.4.2010, 06:47


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Deee
Дата 10.4.2010, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



То есть, если я правильно понимаю - прога сама обнаружит подключенные к данному компьютеру компьютеры и получит их IP адреса?
или я не догоняю)))
и еще почему HostToIP булевского типа, так и не понял.
и как мне вывести значение IP в edit?

заранее благодарю)
PM MAIL   Вверх
~FoX~
Дата 10.4.2010, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Deee, Ой....

Цитата(Deee @  10.4.2010,  11:18 Найти цитируемый пост)
То есть, если я правильно понимаю - прога сама обнаружит подключенные к данному компьютеру компьютеры и получит их IP адреса?
или я не догоняю)))

Можно сделать что бы сервер определял  адреса, можно (и удобнее) что бы клиенты определяли адрес сервера


Цитата(Deee @  10.4.2010,  11:18 Найти цитируемый пост)
и еще почему HostToIP булевского типа, так и не понял.
и как мне вывести значение IP в edit?

Если возможно определить адрес возвращается тру иначе фалш
Адрес попадает в вар параметр. Вызывается так:
Код

var 
  ip: string;
begin
  HostToIP('M1', Ip: string);
  Edit1.Text := Ip
end;






--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Deee
Дата 10.4.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



~FoX~, а если компьютеры подключены к хабу (дворовая локальная сеть)? что-то меняется? 
да и он определяет только один IP, и не тот который мне нужен (у меня адрес вида 10.32.xxx.xxx)  

Это сообщение отредактировал(а) Deee - 10.4.2010, 16:48
PM MAIL   Вверх
~FoX~
Дата 11.4.2010, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Цитата(Deee @  10.4.2010,  17:08 Найти цитируемый пост)
если компьютеры подключены к хабу (дворовая локальная сеть)? что-то меняется? 

Да хоть по рингу...

Цитата(Deee @  10.4.2010,  17:08 Найти цитируемый пост)
да и он определяет только один IP, и не тот который мне нужен (у меня адрес вида 10.32.xxx.xxx)  

Что значит не тот который нужен?


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Deee
Дата 11.4.2010, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



~FoX~, код, который я выкладывал в самом начале определяет несколько адресов, а ваша прога только один.
просто у меня DC++ показывает мне другой IP и на него-то как раз и настроен прокси сервер (за этим ip мне и нужно следить)
например: моя прога выдает мне 2 адреса 10.32.26.14 и 10.32.154.25
а ваша выдает только 10.32.26.14
а мне нужен 10.32.154.25
вот так
PM MAIL   Вверх
~FoX~
Дата 11.4.2010, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Ничего не понял, у тебя несколько интерфейсов? По которому подключается клиент тот и определяется...


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Deee
Дата 11.4.2010, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



~FoX~, я, честно сказать, не очень силен в сетевых техологиях))
может быть один ip это интернет (у меня через VPN подключен), а второй на локалку...а может и нет
но суть такова, что клиент прокси настраивает на 10.32.154.25 (он точно динамический), а про второй ip (10.32.26.14) ничего не знаю

PM MAIL   Вверх
~FoX~
Дата 11.4.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Deee, Значит как минимум их два ))))
Я так понимаю, что клиентам постоянно надо определять/менять адрес прокси (10.32.154.25), который смотрит в интернет.. Тебе нужно определить адрес который смотрит в интернет????.... Не очень понятно почему так организована сеть. 

Определение свойств интерфейсов лежит winsoсk


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Deee
Дата 11.4.2010, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



~FoX~, что интересно, прокси по обоим адресам нормально работает.
только запустил на клиентской машине прогу, а она не работает..
(а на моем компе работает) странно...
PM MAIL   Вверх
~FoX~
Дата 11.4.2010, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Цитата(Deee @  11.4.2010,  15:17 Найти цитируемый пост)
только запустил на клиентской машине прогу, а она не работает..

Что значит не работает?

Судя по всему у тебя не прокси, а криво настроенный NAT


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
~FoX~
Дата 11.4.2010, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Вспомнил GetAdaptersInfo, вернет тебе нужный все инфу, которая тебе нужна...


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.