#region IP地址限制功能 2017-07-18
/// <summary>
///
/// </summary>
/// <returns></returns>
public
bool
IsIPValidate()
{
bool
flag =
false
;
string
userip = GetLoginIp();
string
[] addr = GetAddressByIp(userip);
string
addrs = addr[0] + addr[1];
if
(
"北京"
.Equals(addr[0]) ||
"北京"
.Equals(addr[1]))
{
flag =
true
;
}
return
flag;
}
/// <summary>
/// 获取远程访问用户的Ip地址
/// </summary>
/// <returns>返回Ip地址</returns>
protected
string
GetLoginIp()
{
string
loginip =
""
;
if
(Request.ServerVariables[
"REMOTE_ADDR"
] !=
null
)
{
loginip = Request.ServerVariables[
"REMOTE_ADDR"
].ToString();
}
else
if
(Request.ServerVariables[
"HTTP_VIA"
] !=
null
)
{
if
(Request.ServerVariables[
"HTTP_X_FORWARDED_FOR"
] !=
null
)
{
loginip = Request.ServerVariables[
"HTTP_X_FORWARDED_FOR"
].ToString();
}
else
{
loginip = Request.UserHostAddress;
}
}
else
{
loginip = Request.UserHostAddress;
}
return
loginip;
}
/// <summary>
/// 根据IP获取省市
/// </summary>
public
string
[] GetAddressByIp(
string
ip)
{
string
PostUrl =
"http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip="
+ ip;
string
res = GetDataByPost(PostUrl);
string
[] arr = getAreaInfoList(res);
return
arr;
}
/// <summary>
/// Post请求数据
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public
string
GetDataByPost(
string
url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
string
s =
"anything"
;
byte
[] requestBytes = System.Text.Encoding.ASCII.GetBytes(s);
req.Method =
"POST"
;
req.ContentType =
"application/x-www-form-urlencoded"
;
req.ContentLength = requestBytes.Length;
Stream requestStream = req.GetRequestStream();
requestStream.Write(requestBytes, 0, requestBytes.Length);
requestStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr =
new
StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
string
backstr = sr.ReadToEnd();
sr.Close();
res.Close();
return
backstr;
}
/// <summary>
/// 处理所要的数据
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
public
static
string
[] getAreaInfoList(
string
ipData)
{
string
[] areaArr =
new
string
[10];
string
[] newAreaArr =
new
string
[2];
try
{
areaArr = ipData.Split(
't'
);
newAreaArr[0] = areaArr[4];
newAreaArr[1] = areaArr[5];
}
catch
(Exception e)
{
}
return
newAreaArr;
}
#endregion