asp.net(vb.net)获取真实IP的函数 |
本文标签:真实IP aspx vb.net获取真实IP的函数如下: 复制代码 代码如下: <script runat="server"> Public Function CheckIp(ByVal ip As String) As Boolean Dim pat As String = "^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$" Dim reg As Regex = New Regex(pat) if ip = "" Then CheckIp = False exit Function end if CheckIp = reg.IsMatch(ip) End Function Public Function get_cli_ip() As String If ( Not( System.Web.HttpContext.Current.Request.ServerVariables("HTTP_CLIENT_IP") Is Nothing) And CheckIp(System.Web.HttpContext.Current.Request.ServerVariables("HTTP_CLIENT_IP")) = True) Then get_cli_ip = System.Web.HttpContext.Current.Request.ServerVariables("HTTP_CLIENT_IP") Exit Function ElseIf Not(System.Web.HttpContext.Current.Request.ServerVariables("HTTP_X_FORWARDED_FOR") Is Nothing) Then Dim ips() As String = Split(System.Web.HttpContext.Current.Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") For i As Integer = 0 To ips.Length - 1 If CheckIp(Trim(ips(i))) = True Then get_cli_ip = Trim(ips(i)) Exit Function End If Next End If get_cli_ip = System.Web.HttpContext.Current.Request.ServerVariables("REMOTE_ADDR") End Function </script> 完整的测试页面: 复制代码 代码如下: <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Public Function CheckIp(ByVal ip As String) As Boolean Dim pat As String = "^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$" Dim reg As Regex = New Regex(pat) if ip = "" Then CheckIp = False exit Function end if CheckIp = reg.IsMatch(ip) End Function Public Function get_cli_ip() As String If ( Not( System.Web.HttpContext.Current.Request.ServerVariables("HTTP_CLIENT_IP") Is Nothing) And CheckIp(System.Web.HttpContext.Current.Request.ServerVariables("HTTP_CLIENT_IP")) = True) Then get_cli_ip = System.Web.HttpContext.Current.Request.ServerVariables("HTTP_CLIENT_IP") Exit Function ElseIf Not(System.Web.HttpContext.Current.Request.ServerVariables("HTTP_X_FORWARDED_FOR") Is Nothing) Then Dim ips() As String = Split(System.Web.HttpContext.Current.Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") For i As Integer = 0 To ips.Length - 1 If CheckIp(Trim(ips(i))) = True Then get_cli_ip = Trim(ips(i)) Exit Function End If Next End If get_cli_ip = System.Web.HttpContext.Current.Request.ServerVariables("REMOTE_ADDR") End Function </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <% Dim client_ip As String = get_cli_ip() System.Web.HttpContext.Current.Response.Write(client_ip) %> </body> </html> |