RT,
解决方案 »
- 一道委托的题目
- 如何将一个窗口的内容打印或者导入Word中
- 如何在winform 中把图片控件导出到Excel中????
- DataGridView 控件的使用
- dataGridView可以直接绑定DataRow数组吗?
- 菜鸟问题~winform下有没有选择文件路径的控件及其相关用法`
- treeview里的ContextMenu,找了无数文章都没有说到要点;大家帮我看看
- 使用线程的问题,我想了N种办法都不行,各位帮帮忙!!!
- 当遇到这个问题怎么解决 ????/急
- 怎样在MDI子窗体关闭后去更新MDI主窗体的菜单,使某项不可用啊?
- 我自定义一个类,在哪里声明类对象,可以在窗体各个事件里使用该对象?谢谢
- List问题.希望大家来看看.谢谢!
tem = Request.ServerVariables("REMOTE_ADDR");
Response.Write(tem.ToString());1楼的方法出现错误:
Non-invocable member 'System.Web.HttpRequest.ServerVariables' cannot be used like a method怎么回事?
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
但是这条语句只能取到内网的ip地址,我想要的是能取到公网的ip地址的方法。
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
但是我想要的是能真实读出客户端的公网ip地址呀,大家给我的都只能取内网的ip地址.
/// 获取用户登陆IP
/// </summary>
/// <returns>返回用户IP</returns>
public static string GetIp()
{
string user_IP;
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
{
user_IP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
user_IP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
return user_IP;
}
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
} if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.UserHostAddress;
} if (string.IsNullOrEmpty(result) || !Utils.IsIP(result))
{
return "127.0.0.1";
} return result;
{
return Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");
}
{
string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (userIP == null || userIP == "")
{
userIP = Request.ServerVariables["REMOTE_ADDR"]; }
return userIP;
} string hostname = Dns.GetHostName();
Response.Write("HostName:"+hostname);
IPAddress[] address = Dns.GetHostAddresses(hostname);
IPEndPoint ipendpoint = new IPEndPoint(address[0], 1234);
Response.Write("address:"+ipendpoint.Address.ToString());
Response.Write("port:" + ipendpoint.Port.ToString());
Response.Write("endpoint:" + ipendpoint.ToString());
或通过web services获取地址
参考
是他自己弄错了,他自己在内网上,去访问内网上的另一台机器,当然获得的是内网ip了.
都在内网上,你的访问信息都没在外网上转,怎么可能让另一台机器获得你的外网ip.