Arkiverat

Detta ämne är nu arkiverat och det går inte längre svara i det.

KarlGW

.NET kan inte finna IP-adress på server

Recommended Posts

Hej, det här är mitt första inlägg. Jag registrerade mig här för att se om jag kunde få lite reflektioner.

Jag har en server som hostar en webapplikation. För denna ska fungera som den ska så måste den kunna få tag i IP-adressen ifrån datorn.

Nätverkskort och nätverksinställningar visar helt korrekta inställningar, och även ipconfig visar dessa. Men av någon anledning verkar inte metoder och anrop från .NET kunna hitta något

annat än loopback-adressen.

På min egen klientdator så får jag upp samtliga adresser med följande (i PowerShell)

$hostname = [system.Net.Dns]::GetHostName()

$hostentry = [sysem.Net.Dns]::GetHostEntry($hostname)

$hostentry.AddressList (detta ska lista samtliga adresser).

Detta visar enbart loopback-adressen på servern, och bevisligen är det något som då är "trasigt" eftersom funktionen ifrån en .aspx på siten inte heller kan återge en adress.

Jag har provat att reparera .NET Framework, och även installera om alla versioner ifrån scratch.

Någon som har en reflektion angående det här?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst opensource

Vad är det du vill göra? Avgöra vilken IP servern har eller vad? Och du får bara localhost/loopback/127.0.0.1? Eller IP från anslutande klienter eller vad? Jag är inte så high på nätverk men jag har bra koll på kod

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Hej!

Det jag vill göra är att en applikation/kodrad som körs via asp.net ska kunna hämta datorns IP-adress. Men då något verkar knas så kan den i nuläget bara hämta upp loopback-adressen, trots att det övriga är rätt konfigurerat och ser ut att fungera som det ska i övrigt. Det är bara med .NET som det inte går att hämta ut den, och det som är det väsentliga i just det här fallet.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst opensource

Extern IP som hela internet kan ansluta till eller lokal IP som endast ditt nätverk /LAN kan ansluta till? För att få extern IP måste man ansluta till en fristående server och fråga den vad man har för IP. Exempelvis http://ip.nu

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Det går ju också att komma åt interna adresser med NAT och portforwarding, men det är ett annat kapitel.

Det är den interna IP:n jag kommer behöva plocka fram.

Egentligen är det inte en kodrad jag behöver hjälp med, utan reflektion och tips på vad det är som kan vara fel på själva servern. På en liknande server kan .asp-funktionen hämta IP utan problem.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst opensource

Fast kod skriven på rätt sätt fungerar ju över allt. GetHostEntry(null) är ju för övrigt samma sak som

$hostname = [system.Net.Dns]::GetHostName()

$hostentry = [sysem.Net.Dns]::GetHostEntry($hostname)

Har du läst MSDN? Där är en hel del remarks. Lär ju finnas andra sätt att göra samma sak på också. Går du genom alla adresser eller bara första?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

"Fast kod skriven på rätt sätt fungerar ju över allt"

Ja det är ju det jag med vill syfta på. Men eftersom koden inte kan hitta adressen så är det ju något som är fel.

Kör man med .AddressList på andra datorer, min egen klient, samt andra servers så listar den samtliga adresser. Denna återger bara loopback när detta utförs.

Det är återigen inte själva koden jag behöver hjälp med, det är det faktum att .NET inte hittar någon adress, trots att den är uppkonfigurerad.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst opensource

Jo fast bara för att en kod fungerar på 30 datorer betyder inte det att den ska fungera på alla datorer. Det står ju faktiskt ingenting i dokumentationen att loopback inte är en giltig adress. Se om det finns en funktion som har den funktionalitet du är ute efter uttyckligen dokumenterad. Fångar du undantag? Jag ska testa vad min dator säger.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Och det är inte bara den koden som jag drar ifrån PowerShell, utan även en kodrad som körs på ett annat sätt. Båda återger att det endast existerar en loopbackadress, TROTS att det är uppkonfat på ett annat vis.

Det är inte felsökning av kod jag är ute efter, jag är ute efter att ta reda på varför den inte kan hitta den satta IP-adressen. Det är nämligen en annan webbapplikation som inte heller kan hitta adressen som är satt, inte enbart asp.net-funktionen eller mina rader ifrån PowerShell.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst opensource

I hear you, men vill bara säga att det är vanligt att man lätt skyller ifrån sig "nej min kod fungerar, det är fel på .NET" när man kanske inte riktigt gjort allting helt rätt ändå. Men nej jag vet inte vad man kan göra. Hade jag misstänkt att något var fel i systemet skulle jag helt enkelt installera om från början. OS och .NET och allt.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Gäst opensource

Du skulle ju exempelvis kunna dumpa ipconfig till en fil och tolka adresserna från den.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

I hear you, men vill bara säga att det är vanligt att man lätt skyller ifrån sig "nej min kod fungerar, det är fel på .NET" när man kanske inte riktigt gjort allting helt rätt ändå. Men nej jag vet inte vad man kan göra. Hade jag misstänkt att något var fel i systemet skulle jag helt enkelt installera om från början. OS och .NET och allt.

Absolut, jag förstår att det är så. Glömde väl nämna att det är tre olika koduppsättningar som inte kan finna svaret. Då jag är en medelmåttig kodare så vet jag att min kod är högst felbar ^^.

Jo, .NET-biten har jag redan tagit. I det här fallet är dock ominstallation av OS inget alternativ.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Bara en reflektion :

IPv4-IPv6 i datorn,, någonting där som ställer till det ?

Kan inte så mycket om kodning, men det tycks finnas en del undantag med IPv4-IPv6 dessutom.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

I det här fallet spelar inte kod någon roll, då det inte är kod det är fel på :).

Det är ett gammalt Windows Server 2003-lik. Så per default är där ingen IPv6 uppkonfad/installerad.

Om man kollar själva properties för Local Area Connection så ser allt schysst ut liksom. Dessutom ser halt helt okey ut i registret, under:

HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser