Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Αποστολή IP Address

Îåêßíçóå áðü ôï ìÝëïò gmlogic. Τελευταία δημοσίευση από το μέλος amargar στις 06-02-2007, 09:47. Υπάρχουν 17 απαντήσεις.
Σελίδα 1 από 2 (18 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-01-2007, 13:43 23795

    Geeked [8-|] Αποστολή IP Address

    Θέλω να κάνω τα εξής.
    Μέσα απο την εφαρμογή μου (WinForms) θέλω να πέρνω την IP Address του Internet εκείνη τη ώρα που τρέχει
    η εφαρμογή.
    Το έκανα παλιά μέσω .asp με Request.ServerVariables( "REMOTE_ADDR" )
    Αλλά δεν ξέρω πως να το κάνω σε  vb.net
    Μετά θέλω να την στέλνω σε κάποια βάση.
    (Και τέλος θα ήθελα να τρέχη σαν Service.)
    Αλλά η βασική ερώτηση είναι πως θα πάρω την IP Address με vb.net

    Ευχαριστώ πολύ.


    George Matzouranis
  •  20-01-2007, 14:12 23798 σε απάντηση της 23795

    Απ: Αποστολή IP Address

            Dim myIPHost As Net.IPHostEntry = Net.Dns.GetHostEntry(Environment.MachineName)
            Dim myIPAddr As Net.IPAddress() = myIPHost.AddressList

    To myIPAddr είναι array γιατί στο PC μπορεί να υπάρχουν πάνω από ένας network adapter

    Για να τρέχει αυτό ως service, θα πρέπει να ξεκινήσεις με ένα Windows Service project. Αν φτιάχνεις windows service για πρώτη φορά, θα βρεις how to στο MSDN.


    Vir prudens non contra ventum mingit
  •  20-01-2007, 15:22 23800 σε απάντηση της 23795

    Απ: Αποστολή IP Address

    Μάνο δεν έφερε την IP Address του Internet

    Μου έφερε μόνο τις τοπικές IP

    Όπως όταν δίνω ipconfig απο cmd

    Ενώ όταν τρέχω

    http://www.gmlogic.gr/ip.asp

    μου την φέρνη.

    Έχεις καμιά ιδέα.


    George Matzouranis
  •  20-01-2007, 17:52 23805 σε απάντηση της 23800

    Απ: Αποστολή IP Address

    Μάλλον δεν κατάλαβα τι εννοείς όταν λές "θέλω να πέρνω την IP Address του Internet εκείνη τη ώρα που τρέχει η εφαρμογή". Νόμιζα ότι ήθελες τις IP του τοπικού μηχανήματος. Θα πρέπει να βάλεις στην GetHostEntry, αντί το Environment.MachineName, το κατάλληλο host name.


    Vir prudens non contra ventum mingit
  •  20-01-2007, 18:40 23806 σε απάντηση της 23795

    Απ: Αποστολή IP Address

    Αν κατάλαβα καλά, εννοείς την IP address του router, σωστά (εφ' όσον μιλάμε για ADSL);

    Αν ναι, τότε... δύσκολα τα πράγματα! Ένας τρόπος που σκέφτομαι, είναι να χρησιμοποιήσεις κάποιο εξωτερικό web service (δικό σου, η 3rd party), με το οποίο θα επικοινωνείς, και θα σου επιστρέφει την IP.
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  20-01-2007, 19:44 23807 σε απάντηση της 23795

    Sad [:(] Απ: Αποστολή IP Address

    Ακριβώς την IP address του router
    Το έκανα παλιά μέσω .asp με Request.ServerVariables( "REMOTE_ADDR" )
    Αλλά δεν ξέρω πως να το κάνω σε vb.net
    Αν μπορή κάποιος να βοηθήση ?

    Ευχαριστώ


    George Matzouranis
  •  21-01-2007, 20:00 23817 σε απάντηση της 23806

    Απ: Αποστολή IP Address

    Αν καταλαβαίνω καλά (;) θέλεις την IP address του default gateway. Αυτή μπορείς να την πάρεις από το property IPInterfaceProperties.GatewayAddresses. Βέβαια, όπως φαίνεται και από το όνομά του, μπορούν να υπάρχουν πολλά gateways σε κάθε ένα από τα (ενδεχομένως πολλά επίσης network interfaces). Αυτή την πολλαπλότητα πρέπει κάπως να την προβλέψεις και να την αντιμετωπίσεις.

    Για δείγμα κώδικα για το παραπάνω, κοίτα στο http://msdn2.microsoft.com/en-gb/library/system.net.networkinformation.ipinterfaceproperties.gatewayaddresses.aspx

    Νατάσα Μανουσοπούλου
  •  22-01-2007, 09:03 23830 σε απάντηση της 23807

    Απ: Αποστολή IP Address

    Μπορείς πάντα να χρησιμοποιείσεις την υπηρεσία του http://checkip.dyndns.org/
    η οποία θα σου επιστρέψει την Wan Ip του router σου στην μορφή Current IP Address: ΧΧ.ΧΧ.ΧΧ.ΧΧ

  •  22-01-2007, 09:49 23831 σε απάντηση της 23795

    Απ: Αποστολή IP Address

    Μάλλον δεν θέλει την δικιά του IP αλλά του client.

    Το HttpContext.Current.Request.UserHostAddress ή το HttpContext.Current.Request.ServerVariables( "REMOTE_ADDR" ) δεν σου βγάζουν το αποτέλεσμα που θέλεις;
  •  22-01-2007, 10:49 23833 σε απάντηση της 23831

    Απ: Αποστολή IP Address

    Το κακό είναι ότι θέλει να το κάνει από εφαρμογή winforms και όχι ASP.NET. Οπότε και δεν υπάρχει το Request object.

    Πραγματικά η μόνη λύση που βλέπω είναι να χρησιμοποιήσεις κάποιο web-service που θα σου επιστρέφει την εξωτερική ΙΡ του router σου. (Το default gateway απ ότι κατάλαβα δεν σου κάνει γιατί είναι στο τοπικό υποδίκτυο και όχι η Ιντερνετική ΙΡ). Και αυτό γιατί εφ'όσον παίζεις με ΝΑΤ, η ιντερνετική ΙΡ είναι ορατή μόνο από μηχανήματα εκτός του router σου (όπως στην περίπτωση του ASP.NET που σου την στέλνει ο server). Από τα μέσα μηχανήματα βλέπεις μόνο αυτή του τοπικού subnet, ή τα πακέτα της Ινετικής στα οποία όμως έχει ήδη γίνει το translation της Ινετικής στην τοπική.

    Η υπηρεσία που αναφέρει ο nsouflis φαίνεται αρκετά καλή.

    Σαν πρώτη λύση, μπορείς να χρησιμοποιείς ένα command line και να δώσεις

    telnet checkip.dyndns.org 80

    Και μετά GET /

    Δεν θυμάμαι πως ακριβώς γίνεται αλλά κάπως έτσι είναι.

    Σου γυρνάει χύμα τον κώδικα HTML λογικά, οπότε μπορείς να απομονώσεις την ΙΡ.

    Άν είσαι και πίσω από Proxy φυσικά δεν θα σου παίξει έτσι. Δοκίμασε να αλλάξεις την πόρτα σε αυτή του proxy, αλλά δεν είναι σίγουρο ότι θα πάρεις απάντηση γιατί πολλοί proxy δεν επιτρέπουνε απευθείας αιτήσεις....


    Simple Photography
  •  22-01-2007, 14:19 23849 σε απάντηση της 23833

    Απ: Αποστολή IP Address

    To θέμα είναι αν μπορεί να περάσει το host name. Γιατί τότε η λύση που πρότεινα αρχικά δουλεύει.
    Vir prudens non contra ventum mingit
  •  22-01-2007, 16:12 23851 σε απάντηση της 23849

    Απ: Αποστολή IP Address

    Η λύση σου δίνει τις ΙΡ που είναι assigned στα τοπικά Interfaces. Η Ινετική είναι στο Wan του router, oπότε και δεν θα είναι στη λίστα. Τι εννοείς να περνάει το host name?

    To checkip.dyndns.org βλεπει μόνο την Ινετική μέσω του translation που κάνει το router μέσω του ΝΑΤ. Και την απάντηση την κάνει πάλι translate ο router, αλλάζοντας τους headers του πακέτου ώστε να φτάσουνε στην "εσωτερική" που έκανε την αρχική αίτηση.
    Simple Photography
  •  22-01-2007, 16:20 23852 σε απάντηση της 23851

    Απ: Αποστολή IP Address

    Τώρα κατάλαβα τι εννοείς. Το θέμα είναι αν η ΙΡ είναι καταχωρημένη με κάποιο dns name.

    Αλλά απ όσο κατάλαβα το πρόβλημα είναι ότι παίζει με δυναμική και όχι στατική οπότε και θα μπορούσε να τη βάλει και σε ένα config.

    Μήπως να κάνεις μια καταχώρηση σε κάποιον dynamic dns, ώστε να κάνεις refference το όνομα αντί την ΙΡ που είπε και ο kelman?
    Simple Photography
  •  23-01-2007, 12:18 23879 σε απάντηση της 23852

    Απ: Αποστολή IP Address

    Μια άλλη λύση αφού η εξωτερική IP address που βγαίνει στο internet είναι από άλλο μηχάνημα και όχι από τον υπολογιστή σου είναι να δημιουργήσεις μια ιστοσελίδα σε κάποιον web server (δικό σου ή κάποιον που δίνει δωρεάν χώρο), που να σου επιστρέφει μόνο την IP του user (και ότι άλλες πληροφορίες νομίζεις ότι θα σου χρειαστούν). Η εφαρμογή σου θα διαβάζει αυτή την σελίδα (άρα θα είναι αυτή ο user) και θα κάνει parse το κείμενο ώστε να το μετατρέψει σε ip διεύθυνση.

    Θα μπορούσες λοιπόν να φτιάξεις μια σελίδα ipinfo.asp του στύλ (εγώ την έχω βάλει στο http://dvassil.homeip.net/ipinfo.asp) :

    <%=Request.ServerVariables("REMOTE_HOST")%>

    και στην εφαρμογή σου να βάλεις κώδικα (παρόμοιο με αυτόν που πήρα από το msdn):
    try

    {
        //HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("η διεύθυνση της σελίδας σου");
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://dvassil.homeip.net/ipinfo.asp");
        request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.Reload);
        System.Net.HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        String responseText = reader.ReadToEnd();
        reader.Close();
        dataStream.Close();
        response.Close();
        // Κάνεις parse το responseText σε ip address;

    }

    catch ( System.Net.WebException ex )

    {
        System.Windows.Forms.MessageBox.Show(ex.Message);

    }



  •  27-01-2007, 15:01 24134 σε απάντηση της 23817

    Απ: Αποστολή IP Address

    Λοιπόν κατά αρχάς σας ευχαριστώ όλους για τις απαντήσεις σας
    Αλλά είχα μια βδομαδίτσα άδεια.  Smile
    @ Για ΝΑΤΑΣΑ
    Δεν θέλω να πάρω την  Gateway IP address του PC
    Αλλά θέλω την εξωτερική του ROUTER
    @ Για ΜΑΝΟ
    Αν θέλεις διευκρινησέ μου τι ενοείς να βάλω το HOST NAME ποιανού το HOST NAMΕ , μήπως αυτό που λέει ο dimkasta σε κάποιον dynamic dns Provider αλλα σε δοκιμές μερικές φορές δεν μου επέστρέφε την IP για αυτό αναγκάστηκα να ψάχνω κάποια λύση?
    @ Για dva
    Απλή λύση και καλή να διαβάζω το html της σελιδας.Αν δεν βρώ κάτι άλλο θα την εφαρμόσω γιατί μου δούλεψε.
    Όσον αφορά για τα
    HttpContext.Current.Request.UserHostAddress ή το HttpContext.Current.Request.ServerVariables( "REMOTE_ADDR" )
    δεν ξέρω πως να τα δώσω σε WinForms.Έχεις κανένα παράδειγμα.

    Και πάλι σας ευχαριστώ όλους






    George Matzouranis
Σελίδα 1 από 2 (18 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems