Jak sprawdzic czy server ma wewnetrzne lub zewnetrrzne ip ?

Odpowiedz Nowy wątek
2006-08-09 09:50
0

Mam taka funkcje jak ponizej i mam pytanie czy da sie przy jej uzyciu sprawdzic czy komp komrzysta aktualnie z polaczenia modemowego czy tez lan ? I mam jeszcze jedno pytanko dlaczego jak wezme w komentarz zmienna "Flags" to funkcja i tak dziala w dodatku poprawnie [???] :-/

function TForm1.Connected: Boolean;
var
Flags: PDWORD;
begin
{Flags := INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_LAN or
INTERNET_CONNECTION_PROXY or INTERNET_CONNECTION_MODEM_BUSY;}
Result := InternetGetConnectedState(@Flags,0);
end;

Pozostało 580 znaków

2006-08-09 10:26
0

chłopie zamiast jęczeć jak stara baba i pytać o coś gdzie się da wystarczyło by zajrzeć do pomocy!!!

MSDN napisał(a)

lpdwFlags
[out] Pointer to a variable that receives the connection description. This parameter may return a valid flag even when the function returns FALSE. This parameter can be one or more of the following values.

Return Values

Returns TRUE if there is an active modem or a LAN Internet connection, or FALSE if there is no Internet connection, or if all possible Internet connections are not currently active. For more information, see the Remarks section.


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-10 15:33
0

OK cos tam napisalem ale mam jeszcze male trunosci no i nie wiem czy to tak naprawde bedzie dzialac
wyrzuca mi jeszcze taki blad przy kzdej pogrubionej linijce "[Error] Unit1.pas(159): Operator not applicable to this operand type" Myslalem o podcstawieniu w CASE zamiast result Flags ale to chyba by nie wypalilo :-/ Jak by ktos mogl cos podpowiedziec byl bym wdzieczny. Zalezy mi na tym zeby po wykonaniu tej funkcji moglbym sobie wypisac badz wyswietlic z jakim rodzajem polaczenia mam do czynienia.

function TForm1.Connected: Boolean;
var
Flags: PDWORD;
ConnType:string;

begin
Result := InternetGetConnectedState(@Flags,0);

Case Result of
Flags and wininet.INTERNET_CONNECTION_LAN : ConnType := 'LAN';
Flags and wininet.INTERNET_CONNECTION_MODEM : ConnType := 'Modem';
Flags and wininet.INTERNET_CONNECTION_PROXY : ConnType := 'Proxy';

end;

end;

Pozostało 580 znaków

2006-08-11 01:19
0

nie możesz tak zrobić - zamiast case daj if then else if


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-11 09:17
2006-08-11 09:52
0
var 
  connflags:  DWord; 
begin 
  if InternetGetConnectedState( @connflags, 0) then  // requires IE 4.0 or 
higher 
  begin 
    Result := 'Internet Connection Present (' + IntToStr( connflags) + ')' + 
#13; 
    if (( connflags and INTERNET_CONNECTION_MODEM) <> 0) then 
      Result := Result + ' (Modem)' 
    else if (( connflags and INTERNET_CONNECTION_LAN) <> 0) then 
      Result := Result + ' (LAN)'; 
    if (( connflags and INTERNET_CONNECTION_PROXY) <> 0) then 
      Result := Result + #13 + '(Using Proxy)'; 
    if (( connflags and INTERNET_RAS_INSTALLED) <> 0) then 
      Result := Result + #13 + '(Internet RAS installed)'; 
    if (( connflags and INTERNET_CONNECTION_OFFLINE) <> 0) then 
      Result := Result + #13 + '(Offline)' 
    else 
      Result := Result + #13 + '(Online)'; 
    if (( connflags and INTERNET_CONNECTION_CONFIGURED) <> 0) then 
      Result := Result + #13 + '(Might or might not currently be 
connected)'; 
  end 
  else 
    Result := 'No Internet Connection'; 
end;

- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-11 12:42
0

:-O Zatkalo mnie dzieki :-) kurcze skad ty bierzesz takie materialy swietne rozwiazanie ;-)

Pozostało 580 znaków

2006-08-11 13:09
0

z googla :>


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-08-12 12:29
0

Jako, że pytanie w poście i w temacie postu trochę się nie zgadzają, mała wskazówka dla autora pytania: można mieć połączenie przez LAN i zewnętrzne IP, więc jeśli chcesz sprawdzać to drugie za pomocą rodzaju połączenia, to raczej kiepski pomysł :P. Musiałbyś jeszcze chyba klasę aktualnego IP sprawdzić przy połączeniu LAN.

Pozostało 580 znaków

2006-08-12 17:43
0

Hmmm no cos w tym jest :-/ ale jak ktos bedzie mial Forwardowanie porty to i tak wykryje jako Lan albo proxy lub brak polaczenie P2P bo rzadko sie robi Forwardowanie na porcie 21. No chyba ze ktos cos jeszcze bardziej pokombinowal i ma to zew. IP ale to raczej zadziej jest spotykane wiec na razie zostane przy tej funkcji ale jak sie komus uda jakos inaczej to rozwiazac to z checia zerkne na to. :-)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0