Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Помогите узнать IP чужой машины   Найти похожие ветки 

 
Addon ©   (2004-02-06 22:22) [0]

Мне нужно узнать адрес компьютера, который находится в моей локальной сети. Можно ли это зделать с помощью TClientSocket и TServerSocket и как. А можно ли послать текст компьютеру с определенным именем с помощью этих компонентов. Я читал, что можно послать текст по номеру сокета, но меня это не устраивает


 
Kotka ©   (2004-02-06 23:56) [1]

>можно ли послать текст компьютеру с определенным именем
да, но не факт, что будет работать

самое лучшее решение - посылать широковещательные пакеты по сети
(недавно здесь была ветка про это)


 
denkop ©   (2004-02-21 21:50) [2]

Стори сюда:

function TForm1.FillNetLevel(xxx: PNetResource; List1,List2:TStrings): Word;
Type
   PNRArr = ^TNRArr;
   TNRArr = array[0..59] of TNetResource;
Var
  x: PNRArr;
  tnr: TNetResource;
  I : integer;
  EntrReq,
  SizeReq,
  twx: THandle;
  UserName, Ip,WSName: string;
begin
    Result :=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER, xxx, twx);
    If Result = ERROR_NO_NETWORK Then Exit;
    if Result = NO_ERROR then
    begin
           New(x);
           EntrReq := 1;
           SizeReq := SizeOf(TNetResource)*59;
           while (twx <> 0) and
                 (WNetEnumResource(twx, EntrReq, x, SizeReq) <> ERROR_NO_MORE_ITEMS) do
           begin
                 For i := 0 To EntrReq - 1 do
                 begin
                  Move(x^[i], tnr, SizeOf(tnr));
                  case tnr.dwDisplayType of
                   RESOURCEDISPLAYTYPE_SERVER:
                   begin
                      if tnr.lpRemoteName <> "" then
                          WSName:= tnr.lpRemoteName
                          else WSName:= tnr.lpComment;
                      UserName:=copy(WSName,3,length(WSName)-2);
                      HostToIp(UserName,IP);
                      list1.Add(UserName);
                      list2.Add(IP);
                   end;
                   else FillNetLevel(@tnr, list1, list2);
                  end;
                 end;
           end;
           Dispose(x);
           WNetCloseEnum(twx);
    end;
end;

function TForm1.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;

FillNetLevel(nil,ListBox1.Items,ListBox2.Items)
В List1 получаешь имена всех компов в сети в List2 их ip соотв-но



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.049 c
1-1081336277
Leonid
2004-04-07 15:11
2004.04.25
События от мышки с колёсиками


14-1080665686
Usver6000
2004-03-30 20:54
2004.04.25
Как в С++ сделать чтобы проги работала без С++


1-1081094455
Mishenka
2004-04-04 20:00
2004.04.25
ShortCut у меню.


4-1077185604
Игорь Шевченко
2004-02-19 13:13
2004.04.25
Как извлекать ресурсы RT_RCDATA из файлов


1-1081492317
[BAD]Angel
2004-04-09 10:31
2004.04.25
вопрос по IE.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский