Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 19 odgovora
  • 11.652 pregleda

Najnovija ↓

Re: Ispitivanje da li je kompjuter na internetu 20.01.2005. u 14:04 · pre 265 meseci #3
Postoji jedna funkcija za ispitivanje da li je racunar na mrezi:

InternetGetConnectedState

Medjutim, ukoliko je komjuter prikacen na lokalnu mrezu ova funkcija
vraca true, iako nema internet konekcije.
Takodje imam i jednu funkciju koja provera da li postoji veza preko modema,
a meni treba funkcija koja ce odrediti da je kompjuter na internetu bez
obzira na nacin povezivanja.

Sto se tice pingovanja servera ne znam kako to da uradim, pa ako
bi mogao neki primer...

Pozdrav!
Re: Ispitivanje da li je kompjuter na internetu 21.01.2005. u 01:01 · pre 265 meseci #5
Ovo ti je jednostavnije (takodje sa http://www.codeguru.com):
Code:
#include "winsock2.h"

BOOL IsInternetConnection()
{
 char szHostName[128];

 BOOL bPrivateAdr = false; // Private Address area
 BOOL bClassA = false;     // Class A definition
 BOOL bClassB = false;     // Class B definition
 BOOL bClassC = false;     // Class C definition
 BOOL bAutoNet = false;    // AutoNet definition
 CString str;

 if (gethostname(szHostName, 128) == 0 )
 {
  // Get host adresses
  struct hostent * pHost;
  int i;
  UINT ipb;
  pHost = gethostbyname(szHostName);

  for (i = 0;
       pHost!= NULL && pHost->h_addr_list[i]!= NULL;
       i++ )
  {
   int j;
   str="";
   bClassA = bClassB = bClassC = false;
   for( j = 0; j < pHost->h_length; j++ )
   {
    CString addr;

    if( j > 0 )    str += ".";
    ipb = (unsigned int)((unsigned char*)pHost->h_addr_list[i])[j];

    // Define the IP range for exclusion
    if(j==0)
    {
     if(bClassA = (ipb == 10)) break; // Class A defined
     bClassB = (ipb == 172);
     bClassC = (ipb == 192);
     bAutoNet = (ipb == 169);
    }
    else if (j==1)
    {
     // Class B defined
     if(bClassB = (bClassB && ipb >= 16 && ipb <= 31)) break;

     // Class C defined
     if(bClassC = (bClassC && ipb == 168)) break;

     //AutoNet pasibility defined
     if(bAutoNet = (bAutoNet && ipb == 254)) break;
    }

    addr.Format("%u", ipb );
    str += addr;
   }
   // If any address of Private Address 
   // area has been found bPrivateAdr = true
   bPrivateAdr = bPrivateAdr || bClassA || bClassB || bClassC;

   // If any address of Internet Address area 
   // has been found returns TRUE
   if (!bClassA
   && !bClassB
   && !bClassC
   && !bAutoNet
   && str != "127.0.0.1"
   && !str.IsEmpty())
    return TRUE;
  }
 }

 if (bPrivateAdr)
 {
  // The system has IP address from Private Address
  // area,only. Internet from the computer can be accessable
  // via Proxy. If user turn on proxy connection flag, the
  // function believe Internet accessable.
  return bProxyConnection;
 }

 return false;
}
Re: Ispitivanje da li je kompjuter na internetu 24.01.2005. u 01:34 · pre 265 meseci #7
pozdrav,

mozda bi mogao da probas da koristis winsock da napravis konekciju ka nekom poznatom serveru. ako uspes, znaci na internetu si.
Re: Ispitivanje da li je kompjuter na internetu 24.01.2005. u 02:23 · pre 265 meseci #8
Citat:
mozda bi mogao da probas da koristis winsock da napravis konekciju ka nekom poznatom serveru. ako uspes, znaci na internetu si.
Mogu jedno glupo pitanje? Ako je računar priključen na LAN, a sam LAN nema vezu ka Internetu, da li se to računa kao postojanje veze ili ne?

Šta ako računar ima više mrežnih interfejsa?

Mislim da pitanje nije baš dobro postavljeno, a možda je jedno od sledeća dva:

1) Kako da ustanovim da postoji neki mrežni interfejs
2) Kako da ustanovim da li je računar „na internetu“.

IMHO, 2) uopšte nije definisano kako treba. Šta je to uopšte internet?

f
Re: Ispitivanje da li je kompjuter na internetu 28.01.2005. u 00:17 · pre 264 meseca #9
Citat:
filmil: Ako je računar priključen na LAN, a sam LAN nema vezu ka Internetu, da li se to računa kao postojanje veze ili ne?


Ne racuna se.

Citat:
obranko: 
mozda bi mogao da probas da koristis winsock da napravis konekciju ka nekom poznatom serveru. ako uspes, znaci na internetu si.


U ovom slucaju ukoliko nema internet konekcije, pojavljuje se Dijalog za konekciju na internet, a ja zelim da to izbegnem.
Re: Ispitivanje da li je kompjuter na internetu 28.01.2005. u 09:21 · pre 264 meseca
izmenjeno 1 put, poslednji put filmil 28.01.2005. u 09:25
  1. filmil28.01.2005. u 09:25zapis iz teksta poruke
#10
Citat:
Citat:
filmil: Ako je računar priključen na LAN, a sam LAN nema vezu ka Internetu, da li se to računa kao postojanje veze ili ne?
Ne racuna se.
Zašto? Šta tačno određuje razliku između LAN-a i Interneta? Ako je lan veliki, ima recimo stotine računara?

f
Re: Ispitivanje da li je kompjuter na internetu 28.01.2005. u 09:22 · pre 264 meseca #11
Citat:
Citat:
obranko: 
mozda bi mogao da probas da koristis winsock da napravis konekciju ka nekom poznatom serveru. ako uspes, znaci na internetu si.
U ovom slucaju ukoliko nema internet konekcije, pojavljuje se Dijalog za konekciju na internet, a ja zelim da to izbegnem.
Ali to ne valja jer neće raditi u lokalnoj mreži na koju je priključen poznati server.

f
Re: Ispitivanje da li je kompjuter na internetu 28.01.2005. u 09:43 · pre 264 meseca #13
Citat:
evo mene sa jednim predlogom ;) uradis gethostbyname :) recimo od www.google.com ili neke druge adrese :) i ako dobijes IP adresu ti si na netu :) a u koliko dobijes error ;) nisi ;)
Ali rekao je da se ne računa ako je računar povezan na LAN. U guglovom LAN-u neće raditi.

Ne zakeram, nego samo hoću da pokažem da je „biti na Internetu“ loše definisan kriterijum i da ne može da se koristi za pravljenje programa. Jer — šta znači biti na internetu? Da se vidi google? Da li onda to znači da Internet pre gugla nije bio Internet? Ili da, ako Gugl propadne, Internet prestaje da bude Internet? Ili da nijedna mreža koja u sebi nema www.google.com nije internet?

Šta se dešava ako smo recimo povezani na provajdera kome je sasvim slučajno pao link? Da li to znači da smo na internetu ili ne? Jer iako se www.google.com ne vidi, postoji stotine računara koji se vide. U jedno doba bila je česta situacija da akademska mreža padne ili bude jako spora. http://www.yahoo.com se nije video, ali http://galeb.etf.bg.ac.yu se video i te kako — ali samo u okviru akademske mreže. Neko iz inostranstva nije mogao da ga vidi.

S druge strane, ako se to malo prepravi pa glasi: kako da proverim da li sa tog-i-tog računara mogu da se povežem na neki određeni server (npr. google.com ili mojserver.negde.tu), onda pitanje ima smisla i može da se da neki pametan savet. Ne mogu da zamislim da nekom programu treba da bude „povezan na Internet“, ali mogu da zamislim da programu treba da mu određeni računar bude dostupan.
Re: Ispitivanje da li je kompjuter na internetu 28.01.2005. u 11:27 · pre 264 meseca #14
Citat:
filmil: Jer — šta znači biti na internetu? Da se vidi google? Da li onda to znači da Internet pre gugla nije bio Internet? Ili da, ako Gugl propadne, Internet prestaje da bude Internet? Ili da nijedna mreža koja u sebi nema www.google.com nije internet?


Pretpostavljam da sustinski razlozi koje si naveo ostaju na snazi i u tom slucaju, ali sta ako umesto www.google.com uzmemo www.w3c.org?
Re: Ispitivanje da li je kompjuter na internetu 28.01.2005. u 11:54 · pre 264 meseca #15
Citat:
Pretpostavljam da sustinski razlozi koje si naveo ostaju na snazi i u tom slucaju, ali sta ako umesto www.google.com uzmemo www.w3c.org?
Ništa se ne dešava. Priča ostaje potpuno ista. I veb konzorcijum je osnovan tek nakon pojave HTML-a i sličnih stvari, a Internet je opet postojao mnogo pre toga.

Čak ni root name serveri nisu dobri kandidati, pošto je i bez njih moguće dokačiti svaki računar kroz IP adresu (dakle ne po imenu).

Mislim da je jedini izlaz da OP kaže koji server ili koju grupu servera želi da vidi, pa da se prema tome i da odgovor.

Jer pitanje: „kako da utvrdim da je računar povezan na Internet“ može da znači bilo šta, zavisi kako definišeš povezanost:

1) Da računar koji ovde koristim koristi neki od protokola zasnovanih na IP-u (ovo je u moderno vreme skoro uvek ispunjeno pa je odgovor trivijalno da)
2) Da mogu da komuniciram pomoću IP-a sa ma kojim povezanim udaljenim računarom.
3) Da mogu da komuniciram pomoću IP-a sa nekim određenim računarom.
4) Da mogu da adresiram po imenu bilo koji povezani računar (u ovom slučaju se pitanje svodi na: da li mogu sa ovog računara da kontaktiram bar jedan root name server, odnosno da li ijedan od mojih DNS-ova može nekako da upita bar neki root DNS. U tom slučaju je odgovor na pitanje prilično težak zbog mogućih firewallova koji ne dozvoljavaju tebi lično da kontaktiraš root DNS-ove ali ti dopuštaju preko nekog DNS-a između itd itb).
5) Da mogu da komuniciram sa bilo kojim računarom (ovde je odgovor verovatno ne, pošto je nemoguće komunicirati sa bilo kojim računarom, recimo sa onim koji nema nijedan mrežni priključak ili je isključen sa napajanja, ili pokvaren ili šta ti ja znam).
6) popuniti po želji

f
Re: Ispitivanje da li je kompjuter na internetu 28.01.2005. u 14:32 · pre 264 meseca #16
A sta ako racunar je u mrezi iza firewall-a pa pristpu prema internety je preko HTTP/SOCKS proxy serverima ? Prema tvojot aplikaciji taj racunar nije vezan na internet.
Potpis
People who think they know everything tend to irritate those of us who do.
Re: Ispitivanje da li je kompjuter na internetu 28.01.2005. u 16:05 · pre 264 meseca #17
@filmil: Da, to je i meni bila prva pomisao (ali me je zaintrigiralo sta je to sto "veliki" Internet obavezno ima): "Internet" je za nekog podskup resursa povezanih na Internet koji namerava da koristi, a ostalo ga u principu ne zanima. Ako se tako postave stvari, onda je "povezanost na Internet" vidljivost nekog minimalnog skupa neophodnih resursa za rad aplikacije koja pita za povezanost.

Sa druge strane, ako je ta aplikacija server (u najsirem smislu te reci, npr. i firewall je server, jer opsluzuje napade), odnosno ona sama je resurs, onda imamo problem "gledanja u Mesec" ("kada vidis Mesec, pomisli na mene, mozda i ja gledam Mesec i mislim na tebe"), odnosno, sta je "svetionik" koji nam kaze da smo "na otvorenom moru"?
Re: Ispitivanje da li je kompjuter na internetu 01.02.2005. u 14:40 · pre 264 meseca #18
Evo mala pomoc...batch datoteka

@ECHO OFF
ECHO Checking connection, please wait...
PING 194.109.6.66 | FIND "Reply from " > NUL
IF NOT ERRORLEVEL 1 ECHO You have an active connection to the internet
IF ERRORLEVEL 1 ECHO You have NO active connection to the internet



>
>
Re: Ispitivanje da li je kompjuter na internetu 02.02.2005. u 11:52 · pre 264 meseca #19
Postoji *puno* funkcija koje se *trude* da saznaju da li si na netu,
ali *n i j e d n a* ne moze da ti to zasigurno garantuje. Cudno, ali
istinito.

Ovo su rekli strucnjaci za sockete.
Re: Ispitivanje da li je kompjuter na internetu 02.02.2005. u 11:57 · pre 264 meseca #20
Ja licno koristim najjednostavniju varijantu:

bool IsConnectedToInternet()
{
ULONG FLAGS = INTERNET_CONNECTION_MODEM |
INTERNET_CONNECTION_LAN |
INTERNET_CONNECTION_PROXY;

return ( InternetGetConnectedState( &FLAGS, 0 ) );
}

... koja se uklapa u prethodnu tvrdnju.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme