programing

ASP에서 서버의 IP 주소를 가져오는 중입니다.NET?

padding 2023. 11. 4. 10:18
반응형

ASP에서 서버의 IP 주소를 가져오는 중입니다.NET?

내 ASP를 호출하는 서버의 IP 주소는 어떻게 얻습니까?NET 페이지?응답 개체에 대한 내용은 본 적이 있지만 c#에서는 처음입니다.감사합니다.

작동해야 합니다.

 //this gets the ip address of the server pc

  public string GetIPAddress()
  {
     IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); // `Dns.Resolve()` method is deprecated.
     IPAddress ipAddress = ipHostInfo.AddressList[0];

     return ipAddress.ToString();
  }

http://wec-library.blogspot.com/2008/03/gets-ip-address-of-server-pc-using-c.html

오어

 //while this gets the ip address of the visitor making the call
  HttpContext.Current.Request.UserHostAddress;

http://www.geekpedia.com/KB32_How-do-I-get-the-visitors-IP-address.html

Request.ServerVariables["LOCAL_ADDR"];

멀티홈 서버에 대한 요청이 들어온 IP를 제공합니다.

위의 내용은 DNS 호출이 필요하기 때문에 느립니다(DNS 호출이 불가능한 경우에는 당연히 작동하지 않습니다).아래 코드를 사용하여 해당 서브넷 마스크와 함께 현재 PC의 로컬 IPV4 주소 맵을 가져올 수 있습니다.

public static Dictionary<IPAddress, IPAddress> GetAllNetworkInterfaceIpv4Addresses()
{
    var map = new Dictionary<IPAddress, IPAddress>();

    foreach (var ni in NetworkInterface.GetAllNetworkInterfaces())
    {
        foreach (var uipi in ni.GetIPProperties().UnicastAddresses)
        {
            if (uipi.Address.AddressFamily != AddressFamily.InterNetwork) continue;

            if (uipi.IPv4Mask == null) continue; //ignore 127.0.0.1
            map[uipi.Address] = uipi.IPv4Mask;
        }
    }
    return map;
}

경고: Mono에는 아직 구현되지 않았습니다.

  //this gets the ip address of the server pc
  public string GetIPAddress()
  {
     string strHostName = System.Net.Dns.GetHostName();
     //IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); <-- Obsolete
     IPHostEntry ipHostInfo = Dns.GetHostEntry(strHostName);
     IPAddress ipAddress = ipHostInfo.AddressList[0];

     return ipAddress.ToString();
  }

IPv4에서 작동합니다.

public static string GetServerIP()
{            
    IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());

    foreach (IPAddress address in ipHostInfo.AddressList)
    {
        if (address.AddressFamily == AddressFamily.InterNetwork)
            return address.ToString();
    }

    return string.Empty;
}

아래 스냅은 개발자 콘솔 내부의 네트워크 탭을 구글 크롬으로 보여주기 위해 Mkyong에서 가져온 것입니다."Request Headers" 탭에서 아래와 같이 모든 서버 변수 목록을 볼 수 있습니다.

enter image description here

아래는 당신의 어플리케이션에 맞는 클라이언트의 ip 주소를 얻는 몇 줄의 코드입니다.

//gets the ipaddress of the machine hitting your production server              
string ipAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

if (ipAddress == "" || ipAddress == null)  
{                                     
  //gets the ipaddress of your local server(localhost) during development phase                                                                         
  ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];              
}

//Output:                                                                           
For production server - 122.169.106.247 (random)
For localhost         - ::1

언급URL : https://stackoverflow.com/questions/646525/getting-the-ip-address-of-server-in-asp-net

반응형