Saber se o cabo da rede esta conectado

Delphi

28/06/2004

Ola pessoal estou com um problema preciso saber se o cabo da rede está plugado na placa de rede.
Um metodo seria eu dar um ping para o meu servidor da minha rede local ex: ping 192.168.0.1 mas como saber a resposta?

Eu gostaria de uma maneira independente da resposta do ping mas se não for possivel a do ping ajuda.

Obrigado


Rafael Roni

Rafael Roni

Curtidas 0

Respostas

Koplin

Koplin

28/06/2004

function NaRede: Boolean;
begin
If GetSystemMetrics(SM_NETWORK)and $01=1 Then Result:=True else Result:=False;
end;

function SysComputerName: string;
var I: DWord;
begin
I := MAX_COMPUTERNAME_LENGTH + 1;
SetLength(Result, I);
Windows.GetComputerName(PChar(Result), I);
Result := string(PChar(Result));
end;


uso:

If not NaRede then showmessage(´terminal off line´);


GOSTEI 0
Rafael Roni

Rafael Roni

28/06/2004

Obrigado mas não é isso que eu preciso porque minha rede tem ip fixo
e se o cabo é retirado a função continua respondendo que está na rede


GOSTEI 0
Koplin

Koplin

28/06/2004

Achei esta função no meu baú e nunca testei... talvez sirva para o q voce quer, uma vez que o IP é fixo:

Function GetHostName(strIPAddress : String) : String;
//
// Retorna o Host onde seu TCP/IP está conectado
//
// Requer a Winsock declarada na clausula uses da unit
//
Var
strHost : String ;
pszIPAddress : PChar ;
pReturnedHostEnt : PHostEnt ;
InternetAddr : u_long ;
GInitData : TWSADATA ;
Begin
strHost := ´´;
If WSAStartup($101, GInitData) = 0 then
Begin
pszIPAddress := StrAlloc( Length( strIPAddress ) + 1 ) ;
StrPCopy( pszIPAddress, strIPAddress ) ;
InternetAddr := Inet_Addr(pszIPAddress) ;
StrDispose( pszIPAddress ) ;
pReturnedHostEnt := GetHostByAddr( PChar(@InternetAddr),4, PF_INET );
try
strHost := pReturnedHostEnt^.h_name;
WSACleanup;
Result := strHost ;
except
Result := ´Host inválido ou não encontrado´;
end;
end;
end;


Se não for, eu tentei...


GOSTEI 0
POSTAR