取得IP跟驗證IP
取得客戶端IP
protected string GetClientIP()
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
//判所client端是否有設定代理伺服器
if (context.Request.ServerVariables["HTTP_VIA"] == null)
return context.Request.ServerVariables["REMOTE_ADDR"].ToString();
else
return context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
驗證IP是否正確
using System.Text.RegularExpressions;
public bool IsValidIP(string addr)
{
//create our match pattern
string pattern = @"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$";
//create our Regular Expression object
Regex check = new Regex(pattern);
//boolean variable to hold the status
bool valid = false;
//check to make sure an ip address was provided
if (addr == "")
{
//no address provided so return false
valid = false;
}
else
{
//address provided so use the IsMatch Method
//of the Regular Expression object
valid = check.IsMatch(addr, 0);
}
//return the results
return valid;
}
使用方式
[WebMethod]
public bool IpDEMO()
{
string clientIP = GetClientIP();
bool result = IsValidIP(clientIP);
return result;
}