Skip to content

The Dummy Programmer

Stories of daily programming

  • Home
  • The Dummy Programmer Robot
    • Overview
    • Version history & downloads
    • Tutorials
      • TDP Robot – The basics
      • A simple SQL Server backup solution
      • A simple SQL Server backup solution – A next step
  • My other dummy projects
  • Games
    • Space Y: An Asteroids clone
  • Services
    • What’s my user agent
    • What’s my IP address
  • Donate
  • About
  • Toggle search form

System.Net.Sockets.SocketException (0x80004005): No such host is known

Posted on October 26, 2020October 26, 2020 By

I was working on an old ASP.NET application written in C#, which uses the following method to code to get the IP address of the server it runs on:

public string GetIPAddress()
{
   IPHostEntry Host = default(IPHostEntry);
   string Hostname = null;
   Hostname = System.Environment.MachineName;
   Host = Dns.GetHostEntry(Hostname);
   string IPAddress = "";
   foreach (IPAddress IP in Host.AddressList)
   {
      if (IP.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
      {
         IPAddress = Convert.ToString(IP);
      }
   }
   return IPAddress;
}

Apart from the doubt about the correctness of the code to obtain the IP address of the machine, at the line with the call to “Dns.GetHostEntry”, I got the following error: “System.Net.Sockets.SocketException (0x80004005): No such host is known”.

Consider that this code always worked in other environments, but on this server I got the exception above. I didn’t have much time, so I looked for a quick and dirty solution….

The problem seemed to be due to the fact that the call to “Dns.GetHostEntry” could not resolve the machine name in a valid Host object. So I tried to modify the windows file “host”, which you can find in “C:\Windows\System32\drivers\etc”, in the following way.

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

# Added the following line to solve the "No such host is known" error...
10.0.0.5			SDAADMIN384759XXX

On the left you can see the IP address of the server (in this case a private IP address because the server is behind a NAT), and on the right you can see the host name. Pay attention: the host name you enter must match the host name you would get calling “System.Environment.MachineName”.

Using this workaround I managed to avoid the exception and get the application running without modifying the source code, maybe getting a wrong IP address but in this case it wasn’t important.

ASP.NET, C#, DNS

Post navigation

Previous Post: Reading data from a NetworkStream object in C#
Next Post: Splitting a big file in multiple small files

Related Posts

Working with C# async / await keywords (part 2 of 3) C#
Push notifications library with C# and .NET Framework C#
Telerik RadGrid rendering problems with IE11 in compatibility mode ASP.NET
Capture screen using C# C#
Put an ASP.NET website under maintenance ASP.NET
Could not load file or assembly ‘DocumentFormat.OpenXml, Version=2.7.2.0 C#

Search

Subscribe to our newsletter

Related posts

  • Plesk panel update error on Linux CentOS 7: The GPG keys…
  • Push notifications library with C# and .NET Framework
  • Put an ASP.NET website under maintenance
  • A chat program built in C# with .NET socket library

Categories

  • .NET 6 (1)
  • AJAX (1)
  • Android (2)
  • Apache (4)
  • ASP.NET (9)
  • ASP.NET MVC (3)
  • Avalonia UI (1)
  • BCP (1)
  • Bitlocker (2)
  • C# (14)
  • CentOS (4)
  • ClosedXML (1)
  • CLR (1)
  • DNS (1)
  • Encryption (3)
  • Excel (2)
  • FuelPHP (3)
  • Google Chrome (1)
  • GSuite (1)
  • HTML (1)
  • Imagick (2)
  • Javascript (1)
  • Kindle (1)
  • LAMP (3)
  • Linux (6)
  • MariaDB (2)
  • Mathematics (2)
  • MySql (4)
  • NPOI (1)
  • Office 365 (1)
  • Perl (1)
  • PHP (6)
  • Programming (1)
  • Remote desktop (1)
  • SFTP (2)
  • Sockets (3)
  • Sql Server (18)
  • Sql Server 2016 (14)
  • Sql Server 2019 (1)
  • SSL (2)
  • Task scheduler (1)
  • Telerik ASP.NET AJAX (2)
  • The Dummy Programmer Chat (2)
  • The Dummy Programmer Robot (6)
  • Threading (5)
  • Tools (1)
  • TPL (3)
  • TypeScript (3)
  • Ubuntu (4)
  • Virtualization software (3)
  • Visual Studio (1)
  • Visual Studio Code (2)
  • Web fonts (1)
  • Web programming (6)
  • Windows (12)
  • Windows 10 (15)
  • Windows Forms (1)
  • Windows Server (5)

Copyright © 2022 The Dummy Programmer | Privacy Policy |

Powered by PressBook Masonry Dark