asp.net(vb.net)获取真实IP的函数 |
时间:2015-01-29 来源:互联网 作者:佚名 |
|
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>
|
|
|
|