2016-07-05 26 views
-2

ich Xamarin Studio bin mit iOS zu entwickeln, und ich brauche ein paar Funktionen des Computernamens aus der IP und umgekehrtC# Get-Computername von IP

ich diesen Code versucht haben, zu erhalten, der Maschinenname von IP

string machineName = string.Empty; 
try 
{ 
    IPHostEntry hostEntry = Dns.GetHostEntry(ipAdress); 

    machineName = hostEntry.HostName; 
} 
catch (Exception ex) 
{ 
    // Machine not found... 
} 
return machineName; 

Aber ich halte die Maschine IP-Adresse bekommen, so ist es nutzlos, weil ich die IP-Adresse und die IP-Adresse erhalten.

Ich habe etwas gleichermaßen versucht, die IP-Adresse vom Host-Namen bekomme ich die Ausnahme immer bekommen „Kann nicht den Hostnamen HITMAN-DESKTOP lösen“ die HITMAN-DESKTOP meine Remote-Maschine zu sein, die von einem beliebigen Punkt zugänglich ist im Netzwerk und online während der Tests.

Irgendwelche Ideen?

+0

Wäre nicht '[System.Net.Dns] :: GetHostByAddress (.hostname)' für diesen Zweck geeignet? – gravity

+0

Das nutzt er gerade. – Gaspa79

+0

Wie das markierte Duplikat hervorhebt, _ hat nicht jede IP-Adresse einen Namen _ _. Die Frage erneut zu stellen wird das nicht ändern. Wenn Sie ein spezifischeres Szenario haben, das über die Frage hinausgeht, die bereits gestellt und beantwortet wurde, geben Sie diese spezifischen Details an. Erklären Sie, warum Sie glauben, dass der Name des Zielcomputers abrufbar ist, und stellen Sie eine gute [mcve] bereit, die deutlich zeigt, warum und wie Sie den Namen in diesem speziellen Szenario nicht erhalten. –

Antwort

1

Das Problem mit diesem Ansatz Pedro ist, dass Sie nicht den Computernamen mit dieser Funktion erhalten, es sei denn, die DNS hat den Computernamen als Hostname, die es möglicherweise oder nicht haben (Hinweis: wahrscheinlich nicht).

Computername ist nur eine lokale Zeichenfolge. Der Hostname ist eine Netzwerkkonvention, die an die IP gebunden ist, und Sie müssen sie manuell festlegen. Die meisten Netzwerkadministratoren legen fest, dass der Hostname mit dem Computernamen übereinstimmt. Dies ist jedoch nicht garantiert. Sie erhalten deshalb die IP-Adresse. "HITMAN-DESKTOP" ist nicht Ihr Hostname (Netzwerkkennung), ist der Computername (lokale Kennung) und nicht im DNS.

Kurz gesagt, es gibt keine zuverlässige Möglichkeit, dies mit reinem .NET zu tun, es sei denn, Sie sind 100% sicher, dass alle Hostnamen, die Sie überprüfen möchten, den Computernamen entsprechen.