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

Вниз

IP   Найти похожие ветки 

 
Yura32 ©   (2005-10-28 19:00) [0]

spomoshuyu kakoy komandi mojno uznat
IP komputera.
zarani spasibo


 
Leonid Troyanovsky ©   (2005-10-28 19:03) [1]


> Yura32 ©   (28.10.05 19:00)  

> IP komputera.


ipconfig

--
Regards, LVT.


 
Yura32 ©   (2005-10-28 19:19) [2]

ne gifa ne ponal . et kuda pisat?


 
Eraser ©   (2005-10-28 19:57) [3]

unit alxUSock;

interface

uses Windows, Winsock;

{

 Если Вы поместите строку результатов в wide TMEMO (в его свойство memo.lines.text)
 то никаких результатов не увидите.

 Тестировалось на Win98/ME/2K, 95 OSR 2 и NT service
 pack #3 , потому что используется WinSock 2 (WS2_32.DLL)

}
type sockaddr_gen = packed record
   AddressIn: sockaddr_in;
   filler: packed array[0..7] of char;
 end;

type INTERFACE_INFO = packed record
   iiFlags: u_long; // Флаги интерфейса
   iiAddress: sockaddr_gen; // Адрес интерфейса
   iiBroadcastAddress: sockaddr_gen; // Broadcast адрес
   iiNetmask: sockaddr_gen; // Маска подсети
 end;

type
 TInterfacesArray = array of INTERFACE_INFO;

function EnumInterfaces(var sInt: string;
 var InterfacesArray: TInterfacesArray): Boolean;

{ функция WSAIOCtl импортируется из Winsock 2.0 - Winsock 2 доступен }
{ только в Win98/ME/2K и 95 OSR2, NT srv pack #3 }

function WSAIoctl(s: TSocket; cmd: DWORD; lpInBuffer: PCHAR; dwInBufferLen:
 DWORD;
 lpOutBuffer: PCHAR; dwOutBufferLen: DWORD;
 lpdwOutBytesReturned: LPDWORD;
 lpOverLapped: POINTER;
 lpOverLappedRoutine: POINTER): Integer; stdcall; external "WS2_32.DLL";

{ Константы взятые из заголовка C файлов }

const SIO_GET_INTERFACE_LIST = $4004747F;
 IFF_UP = $00000001;
 IFF_BROADCAST = $00000002;
 IFF_LOOPBACK = $00000004;
 IFF_POINTTOPOINT = $00000008;
 IFF_MULTICAST = $00000010;

implementation

{-------------------------------------------------------------------

1. Открываем WINSOCK
2. Создаём сокет
3. Вызываем WSAIOCtl для доступа к сетевым интерфейсам
4. Для каждого интерфейса, получаем IP, MASK, BROADCAST, статус
5. Разделяем строку символом CRLF  
6. Конец :)

--------------------------------------------------------------------}

function EnumInterfaces(var sInt: string;
 var InterfacesArray: TInterfacesArray): Boolean;
var s: TSocket;
 wsaD: WSADATA;
 NumInterfaces: Integer;
 BytesReturned, SetFlags: u_long;
 pAddrInet: SOCKADDR_IN;
 pAddrString: PCHAR;
 PtrA: pointer;
 Buffer: array[0..20] of INTERFACE_INFO;
 i: Integer;
 //InterfacesArray: TInterfacesArray;
begin
 result := true;                                // Инициализируем переменную
 sInt := "";

 WSAStartup($0101, wsaD);                      // Запускаем WinSock
                                               // Здесь можно дабавить различные обработчики ошибки :)

 s := Socket(AF_INET, SOCK_STREAM, 0);          // Открываем сокет
 if (s = INVALID_SOCKET) then exit;

 try                                            // Вызываем WSAIoCtl
   PtrA := @bytesReturned;
   if (WSAIoCtl(s, SIO_GET_INTERFACE_LIST, nil, 0, @Buffer, 1024, PtrA, nil,
     nil)
     <> SOCKET_ERROR)
     then
   begin                                        // Если OK, то определяем количество существующих интерфейсов

     NumInterfaces := BytesReturned div SizeOf(INTERFACE_INFO);
     SetLength(InterfacesArray, NumInterfaces);

     for i := 0 to NumInterfaces - 1 do        // Для каждого интерфейса
     begin
       InterfacesArray[i] := Buffer[i];
       pAddrInet := Buffer[i].iiAddress.addressIn;            // IP адрес
       pAddrString := inet_ntoa(pAddrInet.sin_addr);
       sInt:=sInt+pAddrString;
       if i = NumInterfaces - 1 then
         sInt := sInt
       else
         sInt := sInt + #13#10;
       // CRLF между каждым интерфейсом
     end;
   end;
 except
 end;
//
// Закрываем сокеты
//
 CloseSocket(s);
 WSACleanUp;
 result := false;
end;

end.


 
wp2   (2005-10-28 20:17) [4]

М-да накодили тут.
А нельзя было просто сказать GetHostByName?


 
SergP ©   (2005-10-28 20:43) [5]


> Yura32 ©   (28.10.05 19:00)  
> spomoshuyu kakoy komandi mojno uznat
> IP komputera.
> zarani spasibo


А что подразумевается под "IP компьютера"?


 
Eraser ©   (2005-10-28 21:40) [6]


> wp2   (28.10.05 20:17) [4]

Я так понял нужно узнать свой IP, а их может быть много.
Если удалённого компа, то конечно GetHostByName.


 
wp2   (2005-10-28 23:30) [7]


> Я так понял нужно узнать свой IP, а их может быть много.
>
> Если удалённого компа, то конечно GetHostByName.

Можно и у своего компа узнать с помощью GetHostByName.
Только параметром этой функции должно быть имя компьютера.
Вообщим. В контекстом меню моего компьютера "Свойства" и вперёд.
Хотя есть интересная вещь: бывает, что компьютер имеет действительно разные IP-адреса! Но об этом попозже.

Можно также GetHostName


 
Eraser ©   (2005-10-28 23:43) [8]


> wp2   (28.10.05 23:30) [7]


> Хотя есть интересная вещь: бывает, что компьютер имеет действительно
> разные IP-адреса! Но об этом попозже.

Да ну!? ;-)


 
Defunct ©   (2005-10-29 01:02) [9]

SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces


 
wp2   (2005-10-29 16:30) [10]

Значит так: в Интернете есть специальные хакерские сайты - специально созданные для взломщиков. Назначение этих сайтов показать хакеру, что о нём можно узнать, после того как взломщик подконнектится. То есть насколько хакер себя обезопасил.
Так вот когда вы заходите на этот сайт вам показывают два (!) ваших IP-адреса, Версию вашей операционной системы, версию броузера, настройки монитора (разрешение, частота), какие программы установлены и т.д.
Говорят, что есть сайты, которые могут показать ваши географические координаты.

Подробнее можно прочитать на www.freeproxy.ru

Теперь насчёт этих двух IP-адресов.
Я дозваниваюсь с помощью программы VDialer, которая показывает мой IP-адрес во время моего соединения с Интернетом. Этот же адрес выдают функции GetHostByName и GetHostName.
Зачастую на тех х-сайтах этот адрес и не высвечивается, а высвечивается другой???
А навороченные сайты показывают оба адреса.
Честно говоря, я не насколько хорошо знают Интернет, чтобы мог сказать, что это за адреса. Может один адрес прокси-сервера провайдера, а другой мой - не знаю.
На сайтах пишется что-то вроде локального IP-адреса в подсети и реальный IP-адрес.


 
Yura32 ©   (2005-10-29 19:02) [11]

mne nada shtob v memo1.lines bil IP svoevo kompa.
mojete ne bolshoy primer napisat


 
wp2   (2005-10-29 21:03) [12]

uses WinSock;
var Buf: array [0..100] of Char;
   Info: TWSAData;
   P: PHostEnt;
begin
   WSAStartUp(2, Info);//Инициализируем бибилиотеку Winsock.dll (ws2_32.dll)
   GetHostName(Buf, SizeOf(Buf));//узнаем имя компьютера
   P := GetHostByName(Buf);//узнаем адрес по имени компьютера
   if P <> nil then Memo1.Lines.Add(inet_ntoa(PInAddr(P^.h_addr^)^));
   WSACleanUp//освобождаем память
end;


 
XCoder ©   (2005-11-04 15:02) [13]

У компьютера может быть только онин IP. "Первый" - это внутрисетевой, т.е. по которому к компу обращается сервер провайдера, но глобальной сети по нему к компу не подключишся. "Второй" как раз и есть глобальный IP.



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

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

Наверх





Память: 0.49 MB
Время: 0.035 c
14-1130263029
Arazel
2005-10-25 21:57
2005.11.20
Где взять модуль HSLUtils?


14-1129951854
alexmix
2005-10-22 07:30
2005.11.20
Нужен компонент для мониторинга


1-1130422795
френк
2005-10-27 18:19
2005.11.20
Как отловить закрытие TPopupMenu?


1-1130340430
vers
2005-10-26 19:27
2005.11.20
TPopupMenu с 32-битными картинками


2-1131100180
JBL
2005-11-04 13:29
2005.11.20
Boolean to Variant





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский