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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.06.2008, 14:23   #1
0x007f
 
Регистрация: 28.06.2008
Сообщений: 7
Вопрос Определение имя компьютера и айпи адресса

Как сделать так что бы при запуске моей программы с другого компьютера в сети она считывала айпи адрес и имя компьютера и отображала их например в отдельных лэйблах например?
0x007f вне форума
Старый 29.06.2008, 12:36   #2
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Код:
var
  Size : Cardinal;
  CompName, OSUser : PChar;
  wVerReq: WORD;
  wsaData: TWSAData;
  ip_address: pchar;
  h: PHostEnt;
  ch: array[0..128] of char;
begin
  // Определяем имя компьютера
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  CompName := StrAlloc( Size );
  GetComputerName( CompName, Size );
  label1.Caption := CompName;

  // Определяем пользователя операционной системы
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  OSUser := StrAlloc( Size );
  GetUserName( OSUser, Size );
  label2.Caption := OSUser;

  // Получаем ip-адрес
  wVerReq := MAKEWORD(1, 1);
  WSAStartup(wVerReq, wsaData);
  GetHostName(@ch, 128);
  h := GetHostByName(@ch);
  ip_address := iNet_ntoa(PInAddr(h^.h_addr_list^)^);
  WSACleanup;
  label3.Caption := ip_address;
end;
Не забудьте прописать WinSock в Uses.
edgy вне форума
Старый 30.06.2008, 16:34   #3
0x007f
 
Регистрация: 28.06.2008
Сообщений: 7
По умолчанию

спасибо всё вышло
0x007f вне форума
Старый 20.08.2009, 19:30   #4
Ирина_28
 
Регистрация: 15.08.2009
Сообщений: 4
По умолчанию

подскажите плиз.

Код edgy (внизу) в Delphi 6 работает, а в Delphi2009 выдает ошибку

[DCC Error] Unit1.pas(1040): E2010 Incompatible types: 'AnsiChar' and 'Char'

на строку

ip_address := iNet_ntoa(PInAddr(h^.h_addr_list^)^ );


В Uses у меня:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, Grids, StdCtrls, ExtCtrls, Math, ComCtrls, Outline, jpeg, WinSock, StrUtils,
ConvUtils, StdConvs, DateUtils;





var
Size : Cardinal;
CompName, OSUser : PChar;
wVerReq: WORD;
wsaData: TWSAData;
ip_address: pchar;
h: PHostEnt;
ch: array[0..128] of char;
begin
// Определяем имя компьютера
Size := MAX_COMPUTERNAME_LENGTH + 1;
CompName := StrAlloc( Size );
GetComputerName( CompName, Size );
label1.Caption := CompName;

// Определяем пользователя операционной системы
Size := MAX_COMPUTERNAME_LENGTH + 1;
OSUser := StrAlloc( Size );
GetUserName( OSUser, Size );
label2.Caption := OSUser;

// Получаем ip-адрес
wVerReq := MAKEWORD(1, 1);
WSAStartup(wVerReq, wsaData);
GetHostName(@ch, 128);
h := GetHostByName(@ch);
ip_address := iNet_ntoa(PInAddr(h^.h_addr_list^)^ );
WSACleanup;
label3.Caption := ip_address;
end;

Ирина_28 вне форума
Старый 20.08.2009, 19:37   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
var
  Size : Cardinal;
  CompName, OSUser : PAnsiChar;
  wVerReq: WORD;
  wsaData: TWSAData;
  ip_address: pAnsichar;
  h: PHostEnt;
  ch: array[0..128] of Ansichar;
begin
  // Определяем имя компьютера
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  CompName := StrAlloc( Size );
  GetComputerName( CompName, Size );
  label1.Caption := CompName;

  // Определяем пользователя операционной системы
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  OSUser := StrAlloc( Size );
  GetUserName( OSUser, Size );
  label2.Caption := OSUser;

  // Получаем ip-адрес
  wVerReq := MAKEWORD(1, 1);
  WSAStartup(wVerReq, wsaData);
  GetHostName(@ch, 128);
  h := GetHostByName(@ch);
  ip_address := iNet_ntoa(PInAddr(h^.h_addr_list^)^);
  WSACleanup;
  label3.Caption := ip_address;
end;
вроде так должно быть
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 20.08.2009, 21:29   #6
Ирина_28
 
Регистрация: 15.08.2009
Сообщений: 4
По умолчанию

получилось.

Спасибо Огромное!
Ирина_28 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определение ip-адресса Ермоленко Виктор Помощь студентам 0 02.06.2008 13:44
Автоперезагрузка компьютера Romanus Компьютерное железо 10 11.04.2008 16:18
Получение SID компьютера miae Общие вопросы Delphi 1 21.01.2008 17:50
Имя компьютера asale Microsoft Office Excel 3 01.08.2007 22:05
выключение компьютера Svop Общие вопросы Delphi 23 18.12.2006 22:57