C# 怎么才能得到外网的IP--急急在线等,问题解决马上给分 我是在公司的局域网内上网,我想知道我的外网IP是多少应该怎么办啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样的话在你本机似乎是没有办法取到外网IP的,必须在有外网IP的电脑上才行这是我的愚见,不代表实际情况,请高手指点 似乎没有办法无论是获取硬件信息还是通过 tracert得到的网关地址都是内网地址。所以只能通过外面传给你了,你跟另外一台机器通信,那台机器就会知道你的外网地址,让它告诉你。 转来的------------------static string GetIP(){ Uri uri = new Uri("http://www.ikaka.com/ip/index.asp"); System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = 0; req.CookieContainer = new System.Net.CookieContainer(); req.GetRequestStream().Write(new byte [0], 0, 0); System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)(req.GetResponse()); StreamReader rs = new StreamReader(res.GetResponseStream(), System.Text.Encoding.GetEncoding("GB18030")); string s = rs.ReadToEnd(); rs.Close(); req.Abort(); res.Close(); System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match(s, @"IP:\[(?<IP>[0-9\.]*)\]"); if (m.Success) return m.Groups["IP"].Value; return string.Empty;} 取外网IP俺不清楚,小弟这里有一个取真实IP的,希望对各位有启发: public static string GetRealIP() { string ip; try { HttpRequest request = HttpContext.Current.Request; if (request.ServerVariables["HTTP_VIA"] != null) { ip = request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Split(',')[0].Trim(); } else { ip = request.UserHostAddress; } } catch (Exception ex) { throw ex; } return ip; } private void button2_Click(object sender, System.EventArgs e) { System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList; if ( addressList.Length>1) { this.textBox1.Text = addressList[0].ToString(); this.textBox2.Text = addressList[1].ToString(); } else { this.textBox1.Text = addressList[0].ToString(); this.textBox2.Text = "Break the line..."; } }正常情况下textBox2.Text返回的是外网IP 不过要是你自己拨号我用局域网上的 只有同学的主机可以获得 我只能获得本地IP 在datanavigator 中加了保存的按钮,修改数据后没有保存到数据库 为什么在进度条进行的时候不能修改label文件内容? 帮我看我的代码。。我要哭了。。。 您目前没有权限进行此操作。。。。。 讨论一下,这个架构,怎么来做 c#中如何做一个图片导入按钮 C# mshtml 实现模拟点击a标签 如何调用Vc写的Dll? 关于引用类型的疑问 怎样控制登录系统的IP范围? arraylist动态数组问题~ 在asp.net中怎么去实现打印的功能
无论是获取硬件信息还是通过 tracert得到的网关地址都是内网地址。
所以只能通过外面传给你了,你跟另外一台机器通信,那台机器就会知道你的外网地址,让它告诉你。
{
Uri uri = new Uri("http://www.ikaka.com/ip/index.asp");
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = 0;
req.CookieContainer = new System.Net.CookieContainer();
req.GetRequestStream().Write(new byte [0], 0, 0);
System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)(req.GetResponse());
StreamReader rs = new StreamReader(res.GetResponseStream(), System.Text.Encoding.GetEncoding("GB18030"));
string s = rs.ReadToEnd();
rs.Close();
req.Abort();
res.Close();
System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match(s, @"IP:\[(?<IP>[0-9\.]*)\]");
if (m.Success) return m.Groups["IP"].Value;
return string.Empty;
}
public static string GetRealIP()
{
string ip;
try
{
HttpRequest request = HttpContext.Current.Request; if (request.ServerVariables["HTTP_VIA"] != null)
{
ip = request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Split(',')[0].Trim();
}
else
{
ip = request.UserHostAddress;
}
}
catch (Exception ex)
{
throw ex;
} return ip;
}
{
System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
if ( addressList.Length>1)
{
this.textBox1.Text = addressList[0].ToString();
this.textBox2.Text = addressList[1].ToString();
}
else
{
this.textBox1.Text = addressList[0].ToString();
this.textBox2.Text = "Break the line...";
}
}
正常情况下textBox2.Text返回的是外网IP 不过要是你自己拨号
我用局域网上的 只有同学的主机可以获得 我只能获得本地IP