Форум: "Сети";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
ВнизIP адрес выданный провайдером Найти похожие ветки
← →
Dush (2006-06-02 14:49) [0]Доброго времени суток!
Подскажите пожалуйста как можно определить IP адрес выданный провайдером. Сложность в том, что на машине есть сетевая карта для локалки и подключен модем. При подключении интернета провайдер динамически назначает IP-адрес. Вот его и надо узнать.
Или подскажите где искать информацию.
← →
Сергей М. © (2006-06-02 14:58) [1]Самое простое - запустить программно IPCONFIG.EXE и программно же проанализировать выводимую им информацию об IP-интерфейсах.
← →
Dush (2006-06-02 15:01) [2]но мне нужно в своей программе это определить.
и еще вопрос - можно ли при помощи системных событий отследить момент подключения к интеренету?
← →
Сергей М. © (2006-06-02 15:05) [3]
> мне нужно в своей программе это определить
Если ты не умеешь организовать программный ввод/вывод для консоли - тебе в "Начинающие"... Или в "Общие" (как карта ляжет)...
> можно ли при помощи системных событий отследить момент подключения
> к интеренету?
Нельзя.
Потому что "подключиться к Интернету" нельзя.
← →
thaddy (2006-06-19 20:20) [4]This may help :)
[CODE]
program ipvcl;
// IP info, by Thaddy de Koning
uses
Windows, classes, sysutils, urlmon, winsock;
function GetTempFile:String;
var
Path:String;
Len:Cardinal;
begin
Len := GetTempPath(0,nil);
SetLength(Path,Len);
GetTempPath(Len,PChar(Path));
SetLength(Result, MAX_PATH);
GetTempFileName(PChar(Path),nil,0,PChar(Result));
Setlength(Result,Strlen(PChar(Result)));
end;
// obtains your outside world IP.
function GetWanIP:String;
var
TempList: Tstrings;
len: integer;
DestFile:String;
const
SourceFile = "http://www.whatismyip.com/";
begin
DestFile:=GetTempFile;
if UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = S_OK then
begin
TempList:= Tstringlist.create;
try
Templist.loadfromfile(DestFile);
DeleteFile(PChar(DestFile));
Result:=TempList[4];
finally
TempList.Free;
end;
Len:=Length(Result)-31;
if len >= 7 then //0.0.0.0
Result:= Copy(Result,24,Len)
end;
end;
// obtain the local IP and hostname
function GetIPFromHost(var HostName, IPaddr, WSAErr: string): Boolean;
var
HEnt: pHostEnt;
WSAData: TWSAData;
T:TSockAddrIn;
begin
Result := False;
if WSAStartup($0101, WSAData) = S_OK then
try
IPaddr := "";
Setlength(Hostname,100);
if GetHostName(PChar(HostName), length(HostName)) = S_OK then
begin
SetLength(HostName,Strlen(Pchar(HostName)));
HEnt := GetHostByName(PChar(HostName));
CopyMemory(@T.sin_Addr,PChar(Hent^.h_addr_list^),Hent^.h_length);
IpAddr:=inet_ntoa(T.sin_addr);
Result := True;
end
finally
WSACleanup;
end
else
WSAErr:=SysErrorMessage(WSAGetLastError);
end;
var
Host, IP, Err: string;
begin
if GetIPFromHost(Host, IP, Err) then
messagebox(0,PChar("Your Hostname: "+host+#13+
"Your Dialup or LAN IP: "+IP+#13+
"Your WAN IP: "+GetWanIp),"Network Info",MB_OK or MB_ICONINFORMATION)
else
MessageBox(0,PChar(Err),"",MB_OK or MB_ICONERROR);
end.
[/CODE]
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c