Vai al contenuto
PLC Forum


Ip Dinamico Wan Ip - Trovare il proprio IP dinamico con VB


jrber

Messaggi consigliati

Sono alla ricerca del sistema per trovare il proprio IP dinamico appoggiato al mio router ADSL.

In particolar modo con VB.

Senza dover aprire la pagina del mio router.

Saluti Max.

Link al commento
Condividi su altri siti


Gabriele Corrieri

Ciao

senza agire sul tuo router dovresti trovare qualche pagina web che ti indichi il tuo IP, e prelevare giusto giusto quella sezione di HTML che porta il tuo IP.

Come mai una richiestà così insolita? Magari il problema è risolvibile per un'altra via ... :mellow:

Ciao

Link al commento
Condividi su altri siti

supernovellino

scusa ma la domanda è un po' vaga.

Usando un pc con ad esempio winXp basta richiamare il PROMPT dei comandi e digitare ipconfig.

Link al commento
Condividi su altri siti

Gabriele Corrieri

[at] novellino

Se hai un router il tuo IP esterno non è quello del tuo pc, e ipconfig o winipcfg non restituiscono l'ip che ti assegna il tuo ISP

[at] Piero Azzoni

La cosa è tragicamente legata col telnet al singolo router, quindi poco portabile ...

Ciao

Link al commento
Condividi su altri siti

supernovellino

Scusa Piero, ma se scrivo come hai deto tu, a me, non funziona :D potresti indicarmi il cmd giusto? Mi è venuta la curiosità :blink:

Link al commento
Condividi su altri siti

o anche :

trova un po di mail server con sendmail.

dai il comando "helo www" per esempio e lui ti riporta il tuo ip.

poi dai un quit.

per es:

telnet mail.iper.it 25

helo www

quit

output:

220 IPR274.iper.it ESMTP Sendmail 8.9.3+Sun/8.9.1; Wed, 16 Mar 2005 00:07:50 +01

00 (MET)

250 IPR274.iper.it Hello xxxxxxxxxx [xxx.xxx.xxx.xxx], pleased to m

eet you

Link al commento
Condividi su altri siti

Ovviamente, essendo un IP dinamico, ad ogni connessione andrà fatta la richiesta dell'IP assunto e quindi la procedura di acquisizione dell'indirizzo andrà implementata nel programma che utilizzerà il dato.

Confermo che l'IP dinamico assegnato dall'ISP non coincide con l'IP della rete locale e quindi non serve interrogare il proprio PC a connessione non attiva.

Link al commento
Condividi su altri siti

Vedo che con molto interesse mi avete risposto e vedo che avete capito il mio problema.

In effetti l'ho buttata un po li la mia domanda....

In realtà voglio proprio staccarmi dai servizi offerti in giro... tipo il link alla pagina o ancor meglio al programma che usavo fino a poco fa... EzDNS (fantastico).

Servizzi che dicono a quelle persone il mio IP....

Devo fare un po come fa EzDNS... vedere l'IP lavorarlo, inserirlo in una pag. HTML e ripubblicarlo dove dico io...

Es.

se andate al mio sito www.teknologic.it alla sezione area riservata... non fate altro che lincarvi al mio server web a casa mia. Tutto questo senza avere un IP fisso.

Non riesco a capire il tipo di riflesso che serve x farmi restituire l'IP senza appoggiarmi ad altri.

Link al commento
Condividi su altri siti

Massimo, l'IP dinamico non risiede sulla tua macchina, quindi devi per forza richiederne iil numero al tuo ISP. Puoi farlo anche inviando una email ad un indirizzo sicuramente inesistente, costringendo il mail server a risponderti, è questo un ulteriore modo di interrogare il sistema per ottenere quanto cerchi, ma non capisco perché non interrogare direttamente il tuo ISP come ti è stato suggerito dagli altri.

Anche nel caso di IP fisso (che puoi conoscere a priori) comunque si tratta di indirizzo che ti viene assegnato, perché vieni inserito in una rete di computer, non lo decidi tu, quindi la prima volta è proprio come se tu avessi un'assegnazione dinamica, la differenza è che poi quell'indirizzo ti rimane e non varia neppure nei successivi collegamenti.

Link al commento
Condividi su altri siti

Bhe.. ok.. il discorso ip fisso, dinamico ecc. lo conosco.

E' solo il fatto di avere l'IP dinamico , prenderlo e lavorarlo... per non prendere un ip statico che tin.it si fa pagare!!

e x di più volevo capire quelle pagine shtml con un codice probabilmente java... che restituiscono l'IP...

vedi..

http://vbnet.mvps.org/resources/tools/getp...tpublicip.shtml

Grazie

Link al commento
Condividi su altri siti

Al momento la soluzione di "pidmaster" è qulla che mi piace di +....

Devo solo buttare giù le righe di programma!!!

Ma devo andare a fondo e trovare un'altra soluzione!!

Grazie

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao

prova questo codice, trovato su

http://www.visual-basic.it/tips.asp?id=367&

(è necessaria la registrazione gratuita)

Inserite nella Form un Componente "Microsoft Internet Transfert Control 6.0(SPx)"

  Dim MyIP As String
  MyIP = Inet.OpenURL "http://www.freewebs.com/yourip/ip.html")

in MyIP ritroverete l'Indirizzo IP del Proprio PC

Modificato: da Gabriele Corrieri
Link al commento
Condividi su altri siti

  • 1 year later...

io ho scritto un semplice programmino in java x aggiornare il mio ip su dyndns per ora riesco a visualizzare l'ip del mio pc:

import java.io.*; 
import java.net.*; 

public class Main {

    
    public static void main(String[] args) {
    
    String o;
    String c;
     
      try {
          o="http://checkip.dyndns.org";
          URL u = new URL(o);
          URLConnection uc = u.openConnection();
          uc.connect();
          InputStream is = uc.getInputStream();
          BufferedReader r = new BufferedReader(new InputStreamReader(is));
          o=r.readLine();
          o=o.substring(76);
          o=o.substring(0,13);
          c="http://nomeutente:password[at]streamer.net/nic/update?hostname=xyz.homepc.it&myip=";
          c=c+o;
          System.out.println(o);
          System.out.println©;
          r.close();
          }
          catch (IOException e) {
          e.printStackTrace(System.out);
          System.exit(-1);
      }
        
 }
}

come faccio a far inviare la stringa c che se copiata sul browser funziona correttamente ma se uso openConnection(); non funge mi da errore 401!

ciao.

Link al commento
Condividi su altri siti

sono riuscito a far funzionare il programmino , ogni tot tempo legge l'ip assegnato dal provider , controlla se è cambiato e se si lo invia a dyndns per aggiornare il dns. si deve inserire i propri nome utente e password e l'indirizzo. nel caso vi serva! le specifiche si trovano sul sito dyndns. B)

package leggweb;

import java.io.*; 
import java.net.*; 

public class Main  {

  static  String url = "http://checkip.dyndns.org";
  static  String c;
  static  String theUsername;
  static  String thePassword;
  static  String o;
  static  String attuale="";
  
   public static void main(String[] args) {
    
   for (;1<2;){
       ipdinamico();                
       o=o.substring(76);
       o=o.substring(0,13);
       System.out.println(o);
       if (attuale==o){
       }
       else{
       c="http://streamer.net/nic/update?hostname=vostro.indirizzo&myip=";   
       c=c+o;
       inviaipdyndns();
       attuale = o;
       System.out.println(o);
       }
       attendere();
    } 
}
    
   public static void ipdinamico() {
     try {          
          URL u = new URL(url);
          URLConnection uc = u.openConnection();
          uc.connect();
          InputStream is = uc.getInputStream();
          BufferedReader r = new BufferedReader(new InputStreamReader(is));
          o=r.readLine();
          r.close();  
        }
          catch (IOException e) {
          e.printStackTrace(System.out);
          System.exit(-1);
      }   
    }
   
   public static void inviaipdyndns(){
      try {    
          URL f = new URL©;
          theUsername ="xxxx";
          thePassword ="zzz";
          String userPassword = theUsername + ":" + thePassword;
          String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());
          URLConnection fc = f.openConnection();
          fc.setRequestProperty ("Authorization", "Basic " + encoding);
          fc.connect();
          InputStream fs = fc.getInputStream();
          BufferedReader fr = new BufferedReader(new InputStreamReader(fs));
          o=fr.readLine();
          fr.close();
          }
          catch (IOException e) {
          e.printStackTrace(System.out);
          System.exit(-1);
      }     
    }  
   public static void attendere(){
       Thread t = Thread.currentThread();
       t.setPriority(1);
       try{
       t.sleep(600000);  //ritardo 1h
       }
       catch (InterruptedException e) {
      System.out.println("Thread interrotto");
      }
     }
}

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao Luca

ho provato a copiare, incollare e sostituire user e pwd, ma il compilatore della JVM si inca$$a mica da poco ... in pratica ho salvato come JAR.

So che ho scritto qualche ciofecata, ma vediamo se riesco a imparare qualcosa di nuovo.

Ciao

Link al commento
Condividi su altri siti

in effetti io l'ho compilato con netbeans 5 ! che errori ti da il compilatore ? sei su windows o linux?

comunque il programmino va rivisto ha un problema con la lunghezza del' ip ma sto corregendo poi ti posto il file corretto

Link al commento
Condividi su altri siti

ho letto ora bene il msg devi cambiare il nome da xyz.jar a xyz.java e poi comilato con javac xyz.java

.jar è l'eseguidile che va lanciato con: java -jar xyz.jar

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao

innanzitutto sono su Win2K SP4

Scusa se il tutto ha preso un "nice 15" ... oggi fra una cosa e l'altra ho riesumato la cosa.

La prima prova che ho fatto era un copy'n'paste in un file di testo, rinominato as prova.jar, che lanciato dà picche.

Oggi ho rinominato il jar in java, double click è partito VJ++6 (ho montato visual studio), ma mi rende questi errori:

Il package leggweb non può essere definito nella directory xyz
La classe pubblica Main non può essere definita in "prova.java"
Errore di sintassi
Previsto "("
gli ultimi due errori me li loca nel carattere "chiocciola" in questo codice
try {
URL f = new URL©;
theUsername ="xxxx";

la prova con javac non va in quanto non ho nessun file con quel nome nella directory java.

Sto usando JRE 1.5.0.6 ... anche se sto scaricando NetBeans dal sito Sun.

Ti ringrazio per la pazienza :)

Ciao

Modificato: da Gabriele Corrieri
Link al commento
Condividi su altri siti

purtroppo non si può usare il copia incolla , ho notato diversi errori nel testo si vede che il text editor che si usa per i messaggi non accetta tutti i caratteri o lo interpreta come codici . siccome non so come si fa a uploadare i file , ti invio via mp l'ultima "versione" se vuoi rendila disponibile se servisse a qualcuno. sicuramente lo compila anche VJ6++. ottimo netbeans5 che se non erro dispone già del jdk che comprende il compilatore se ho capito bene indipendente dal sistema operativo e la jre che è effettivamente l'interprete per il sistema operativo .

Link al commento
Condividi su altri siti

Gabriele Riva
ho notato diversi errori nel testo si vede che il text editor che si usa per i messaggi non accetta tutti i caratteri o lo interpreta come codici

Devi utilizzare i tag [ code ] [ / code ] (codice) che trovi nella finestra d'inserimento dei messaggi.

Ho modificato il codice del tuo post precedente, inserendo i tag code, vedrai adessso che la formattazione e' perfetta.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...