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

 

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

client computer name απο ASP.NET 1.1

Îåêßíçóå áðü ôï ìÝëïò immortality. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 03-06-2007, 23:56. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-06-2007, 00:54 32507

    client computer name απο ASP.NET 1.1

    Καλησπέρα, υπάρχει τρόπος να καταγράψω το computer name του client μέσα από μία web εφαρμογή σε ASP.NET 1.1 της οποίας όλοι οι χρήστες ανήκουν στο ίδιο domain? Έχω προσπαθήσει με impersonation και wmi χωρίς αποτέλεσμα, θέλω να το καταφέρω χωρίς την χρήση DNS. Επίσης μπορέι να μου πει κάποιος γιατί το Request.ServerVariables["REMOTE_HOST"] μου δίνει IP?

     

    Ευχαριστώ!

    Δημοσίευση στην κατηγορία: , ,
  •  03-06-2007, 13:18 32521 σε απάντηση της 32507

    Απ: client computer name απο ASP.NET 1.1

    To πρωτόκολλο TCP/IP που βασίζεται το HTTP χρησιμοποιεί διευθύνσεις για να δρομολογεί τα πακέτα του. Δεν θα μπορέσεις να βρεις το όνομα του client μηχανήματος αν δεν κάνεις reverseDNS.

    Γιατί θέλεις να το κάνεις χωρίς την χρήση DNS;

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  03-06-2007, 14:40 32526 σε απάντηση της 32521

    Απ: client computer name απο ASP.NET 1.1

    Γιατί έχω διαπιστώσει ότι ο DNS server γυρνάει πολλές φορές λάθος αποτελέσματα, μάλλον θα πρέπει να επικοινωνήσω με το IT να δω τι γίνεται (ή μήπως κάπου το χάνω εγώ?) . Ξέρω ότι χρησιμοποιεί διευθύνσεις, αυτό που προσπαθώ να κάνω είναι προφανώς να πάρω το client name από κάποια μεταβλητή στο μηχάνημα του client. Για παράδειγμα το System.Security.Principal.WindowsIdentity.GetCurrent().Name με χρήση impersonation μου δίνει το username του χρήστη το οποίο είναι της μορφής domain\username. Υπάρχει κάτι αντίστοιχο για το cname? Με χρήση activex θα μπορούσα να κάνω κάτι τέτοιο:

     

    try
    {
       var ax = new ActiveXObject("WScript.Network");
       document.write('User: ' + ax.UserName + '<br />');
       document.write('Computer: ' + ax.ComputerName + '<br />');
    }
    catch (e)
    {
       document.write('Permission to access computer name is denied' + '<br />');
    }

     

  •  03-06-2007, 20:21 32533 σε απάντηση της 32526

    Απ: client computer name απο ASP.NET 1.1

    Αν δεν σου επιστρέφει τα σωστά ονόματα ο DNS τότε, τότε μάλλον φταίει ο DNS. Αν έχεις IPs για εσωτερικό δίκτυο 192.168.x.x ή 10.10.x.x και 169.254.x.x είναι σχεδόν αδύνατο να μην κάνει σωστό resolve o εσωτερικός DNS της εταιρείας - το active directory απαιτεί και εσωτερικό DNS. Αν όμως ο διαχειριστής έχει χρησιμοποιήσει τυχαίες διευθύνσεις, έξω από αυτές παραπάνω, το πιο πιθανό είναι ο DNS να κάνει resolve τις διευθύνσεις από το internet και να παίρνεις "κουφά" αποτελέσματα - για σένα - σωστά δε, για το DNS.

    Ακόμη το HTTP σαν πρωτόκολλο δεν έχει την πληροφορία που αποζητάς. Θα πρέπει να αφήσεις το identity του χρήστη που συνδέεται να περάσει και στο process που εκτελείται για να μπορέσεις να κάνεις κάτι τέτοιο. Θα πρέπει να ανοίξεις πολλές τρύπες, για να έχεις τα δικαιώματα για να τρέξεις τέτοια scripts που απαιτούν administrative accounts.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  03-06-2007, 22:39 32554 σε απάντηση της 32533

    Απ: client computer name απο ASP.NET 1.1

    Μάλλον δεν είναι τόσο απλό, τα IPs ανήκουν στο reserved range της εταιρίας. Από λίγο googling που έκανα ανακάλυψα ότι υπάρχει γενικότερο «πρόβλημα» στο θέμα του DNS και παίζουν πολλές παράμετροι όπως το cache του DNS Server αλλά και του ISA.

    The issue is the reverse lookup. Traditionally DNS Servers are supposed to resolve the names to addresses. The reverse of that - looking up a host name based on IPAddress is not reliable and in Ipv6 it is not supported. So my recommendation is to not to write apps that rely on reverse lookup.

    http://forums.microsoft.com/msdn/showpost.aspx?pageindex=2&siteid=1&postid=1617196&sb=0&d=1&at=7&ft=11&tf=0&pageid=0

    http://www.eggheadcafe.com/community/aspnet/14/10021234/get-hostname-from-ip-stra.aspx

    https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=97815

    Τελικά υπάρχει αξιόπιστος τρόπος? Ευχαριστώ πολύ για το χρόνο σου και της χρήσιμες πληροφορίες!

  •  03-06-2007, 23:56 32558 σε απάντηση της 32554

    Απ: client computer name απο ASP.NET 1.1

    Αυτό που αναφέρεται ισχύει για το internet - γενικά μόνο στους mail servers υπάρχουν reverse lookup εγγραφές.

    Για το intranet είναι διαφορετικά τα πράγματα. Νομίζω ότι από default το DHCP service πρέπει να βάζει εγγραφές για το reverse lookup για χρήση από το active directory, οπότε ίσως θα μπορούσες να το χρησιμοποιήσεις. Δες αν μπορείς με τα Dns.ResolveName και Dns.GetHostEntry να βγάλεις άκρη.

    Μια άλλη λύση θα ήταν αν μπορούσες να συνενοηθείς με τον adminstrator του δικτύου σου, ώστε μέσα από το DHCP service να μοιράζει σταθερές IPs σε συγκεκριμένες MAC addresses - είναι κάτι που και αυτόν θα βοηθήσει, μιας και θα ξέρει ποιος είναι ποιος, και εσένα που θα μπορείς να φτιάξεις ένα lookup πίνακα με βάση τις IPs.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems