Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2012, 16:46   #1
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Вопрос Как определить ip адрес компа и вывести его в Label

Пожалуйста, покажите рабочий пример как определить ip адрес компьютера и вывести его в Label.

ip нужно получить не локальный а внешний...

Последний раз редактировалось tim21701; 06.02.2012 в 17:44.
tim21701 вне форума Ответить с цитированием
Старый 06.02.2012, 17:48   #2
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Нашел небольшой пример, но он определяет локальный ip:



Код:
function GetLocalIP: String;
const WSVer = $101;
var
  wsaData: TWSAData;
  P: PHostEnt;
  Buf: array [0..127] of Char;
begin
  Result := '';
  if WSAStartup(WSVer, wsaData) = 0 then begin
    if GetHostName(@Buf, 128) = 0 then begin
      P := GetHostByName(@Buf);
      if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
    end;
    WSACleanup;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.Caption:=GetLocalIP;
end;
Как сделать тоже самое, но для внешнего???
tim21701 вне форума Ответить с цитированием
Старый 06.02.2012, 18:13   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

http://programmersforum.ru/showthread.php?t=63677
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.02.2012, 18:33   #4
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Плохо


Последний раз редактировалось tim21701; 06.02.2012 в 21:12.
tim21701 вне форума Ответить с цитированием
Старый 06.02.2012, 19:02   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы привели пример внутреннего адреса.
а внешний в общем то система обычно и не знает, так как он назначаеться не системой, потому и нужен внешний скрипт.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.02.2012, 21:10   #6
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Ну так что, никто этого не знает??? ))
tim21701 вне форума Ответить с цитированием
Старый 06.02.2012, 21:39   #7
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Смех

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
...внешний в общем то система обычно и не знает, так как он назначается не системой, потому и нужен внешний скрипт.
Как это система не знает, если команда ipconfig /all всё показывает!
tim21701 вне форума Ответить с цитированием
Старый 06.02.2012, 21:46   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Megafon - PPP адаптер:

DNS-суффикс этого подключения . . :
Описание . . . . . . . . . . . . : WAN (PPP/SLIP) Interface
Физический адрес. . . . . . . . . : 00-53-45-00-00-00
Dhcp включен. . . . . . . . . . . : нет
IP-адрес . . . . . . . . . . . . : 10.231.104.22
Маска подсети . . . . . . . . . . : 255.255.255.255
Основной шлюз . . . . . . . . . . : 10.231.104.22
DNS-серверы . . . . . . . . . . . : 10.78.72.37
10.78.72.44
Основной WINS-сервер . . . . . . : 10.11.12.13
Дополнительный WINS-сервер. . . . : 10.11.12.14
NetBIOS через TCP/IP. . . . . . . : отключен
уверены?
мой внешний IP начинается на 83, найдете нечто похожее?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.02.2012, 22:00   #9
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Прошу прощения, перепутал с физическим адресом (то есть с мас) )))
Сейчас думаю, кого лучше парсить... Всякие "самодельные странички" по определению адреса - отпадают, в силу своей недолговечности... Может google взять или Яндекс?
tim21701 вне форума Ответить с цитированием
Старый 06.02.2012, 22:02   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var IdHTTP: TIdHTTP;
begin
  IdHTTP:=TIdHTTP.Create(Self);
  try
    Label1.Caption:=IdHTTP.Get('http://automation.whatismyip.com/n09230945.asp');
  except
    Label1.Caption:='Error';
  end;
  IdHTTP.Free;
end;
Проверено и стабильно работает и парсить не надо
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 06.02.2012 в 22:09.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить адрес ячейки? PARTOS Microsoft Office Excel 9 31.10.2018 00:28
Как определить адрес устройства на шине USB? Зойберг Win Api 2 17.09.2011 22:25
Как вывести в Label Значение из таблицы Lesa1988 Помощь студентам 1 25.11.2010 11:28
Как определить внешний IP адрес Temafeyo Свободное общение 5 23.10.2010 18:44
Как определить Свой ip адрес! Marsik Помощь студентам 4 10.04.2008 20:41