C++ - Kreiranje programa koji cita IP

C++ - Kreiranje programa koji cita IP

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Zelim da napravim neki program koji bi ucitavao IP korisnika, evo primera:




Da li je moguce napraviti tako nesto u c++ i koje skripte mi trebaju?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Tebi verovatno treba javna IP adresa. Nažalost, nju ne možeš sam da znaš jer možeš da se nalaziš iza raznih ruter-a, proxy-a, i ko zna čega već. Da bi dobio javnu IP adresu, moraš da pitaš neki sajt na internetu da ti kaže preko koje IP adrese si došao do nje. Jedan primer je recimo ovo:
#include <windows.h> #include <wininet.h> #include <iostream> #pragma comment(lib, "wininet") int main(int argc, char* argv[]) {     HINTERNET hInternet, hFile;     DWORD rSize;     char buffer[32];     hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);     hFile = InternetOpenUrl(hInternet, "http://automation.whatismyip.com/n09230945.asp", NULL, 0, INTERNET_FLAG_RELOAD, 0);     InternetReadFile(hFile, &buffer, sizeof(buffer), &rSize);     buffer[rSize] = '\0';     InternetCloseHandle(hFile);     InternetCloseHandle(hInternet);     std::cout << "Your IP Address: " << buffer << "\n";     system("pause");     return 0; }
Imaj na umu da vlasnici whatismyip servisa dozvoljavaju upotrebu ove funkcije samo jednom na svakih 5 minuta. Ako budeš zvao češće, možda će ti zauvek onemogućiti dostup do njihovih servisa.



offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Srki_82 ::Tebi verovatno treba javna IP adresa. Nažalost, nju ne možeš sam da znaš jer možeš da se nalaziš iza raznih ruter-a, proxy-a, i ko zna čega već. Da bi dobio javnu IP adresu, moraš da pitaš neki sajt na internetu da ti kaže preko koje IP adrese si došao do nje. Jedan primer je recimo ovo:
#include <windows.h> #include <wininet.h> #include <iostream> #pragma comment(lib, "wininet") int main(int argc, char* argv[]) {     HINTERNET hInternet, hFile;     DWORD rSize;     char buffer[32];     hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);     hFile = InternetOpenUrl(hInternet, "http://automation.whatismyip.com/n09230945.asp", NULL, 0, INTERNET_FLAG_RELOAD, 0);     InternetReadFile(hFile, &buffer, sizeof(buffer), &rSize);     buffer[rSize] = '\0';     InternetCloseHandle(hFile);     InternetCloseHandle(hInternet);     std::cout << "Your IP Address: " << buffer << "\n";     system("pause");     return 0; }
Imaj na umu da vlasnici whatismyip servisa dozvoljavaju upotrebu ove funkcije samo jednom na svakih 5 minuta. Ako budeš zvao češće, možda će ti zauvek onemogućiti dostup do njihovih servisa.


Znam za taj servis medjutim nešto nije u redu, jer svaki sledeći put kada udjem na njega pokazuje mi drugi IP, kao da mi se stalno menja IP?!

Ne znam da li je to zbog toga što sam do skoro imao Hide IP program. Hvala na odgovoru.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Na osnovu imena (Hide IP) bih rekao da taj program koristi neke proxy-je i da preko njih ideš na net da bi sakrio svoj IP. Zbog toga je i logično da svaki put dobiješ drugi IP Smile

offline
  • Pridružio: 05 Maj 2010
  • Poruke: 112

Najbolje je da ograničiš korišćenje programa korisniku na 5 minuta posle prve provere ip-a...

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Srki_82 ::Na osnovu imena (Hide IP) bih rekao da taj program koristi neke proxy-je i da preko njih ideš na net da bi sakrio svoj IP. Zbog toga je i logično da svaki put dobiješ drugi IP Smile

Kada udjem u servis pise: No Proxy Detected...

offline
  • Pridružio: 05 Maj 2010
  • Poruke: 112

IZVOR: stackoverflow

#include <stdio.h>      #include <sys/types.h> #include <ifaddrs.h> #include <netinet/in.h> #include <string.h> #include <arpa/inet.h> int main (int argc, const char * argv[]) {     struct ifaddrs * ifAddrStruct=NULL;     struct ifaddrs * ifa=NULL;     void * tmpAddrPtr=NULL;     getifaddrs(&ifAddrStruct);     for (ifa = ifAddrStruct; ifa != NULL; ifa = ifa->ifa_next) {         if (ifa ->ifa_addr->sa_family==AF_INET) { // check it is IP4             // is a valid IP4 Address             tmpAddrPtr=&((struct sockaddr_in *)ifa->ifa_addr)->sin_addr;             char addressBuffer[INET_ADDRSTRLEN];             inet_ntop(AF_INET, tmpAddrPtr, addressBuffer, INET_ADDRSTRLEN);             printf("%s IP Address %s\n", ifa->ifa_name, addressBuffer);         } else if (ifa->ifa_addr->sa_family==AF_INET6) { // check it is IP6             // is a valid IP6 Address             tmpAddrPtr=&((struct sockaddr_in6 *)ifa->ifa_addr)->sin6_addr;             char addressBuffer[INET6_ADDRSTRLEN];             inet_ntop(AF_INET6, tmpAddrPtr, addressBuffer, INET6_ADDRSTRLEN);             printf("%s IP Address %s\n", ifa->ifa_name, addressBuffer);         }     }     if (ifAddrStruct!=NULL) freeifaddrs(ifAddrStruct);     return 0; }

Ko je trenutno na forumu
 

Ukupno su 874 korisnika na forumu :: 35 registrovanih, 6 sakrivenih i 833 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Aleksandar Tomić, Apok, Ben Roj, bojank, bokisha253, comi_pfc, doloress, draggan, Dukelander, HrcAk47, hyla, ILGromovnik, Karla, Krvava Devetka, m0nstrum_, mikrimaus, milenko crazy north, moldway, nebkv, Nemanja.M, Parker, Romibrat, S1Mk3, saputnik plavetnila, Sir Budimir, Sićko, slonic_tonic, sovanova95, SR-3m, stalja, vaso1, VojvodaMisic, wolverined4, zlaya011, šumar bk2