C#如何获取本机在Internet上的IP地址
C#如何获取本机在Internet上的IP地址 问题点数:100、回复次数:42Top
1 楼snowpine999([彼岸烟花][当你看到☆河灿烂,可会想起我?])回复于 2005-02-24 20:41:09 得分 10
UP + 学习 + 接分
UP + 学习 + 接分
UP + 学习 + 接分Top
2 楼dazhu2(【倚天不出,谁与争锋】)回复于 2005-02-24 20:44:08 得分 0
如果是通过代理服务器上网的,本机IP地址就是代理服务器ip地址加上相应的端口号Top
3 楼sdenli(Fender)回复于 2005-02-24 20:53:28 得分 10
Request.ServerVariables["HTTP_REFERER"]可以获得当前地址的上一次请求地址,可获得的是完整的URL
Request.ServerVariables["REMOTE_HOST"],,,
Request.ServerVariables["SERVER_NAME"]
肯定还会有得到IP的,你查一下MSDN吧
Top
4 楼zjwuweim(冰火)回复于 2005-02-25 15:20:36 得分 0
楼上的是不是太麻烦了,是否有还不知道,有没有简单一点的。可以通过其他代码得到Top
5 楼tttick(秉承一贯懒散的生活方式与严谨的工作态度¢)CodinG)回复于 2005-02-25 15:59:44 得分 0
这么高要求哦??上面的我还没看明白呢~~~~~呵呵~~Top
6 楼h_lj(贝塔)回复于 2005-02-25 16:12:11 得分 10
IPAddress[] ips = Dns.GetHostByName(Dns.GetHostName()).AddressList;Top
7 楼yuchangfu(小俞)回复于 2005-02-25 16:18:23 得分 10
System.Net.IPAddress addr;
// 获得拨号动态分配IP地址
addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [1].Address ) ;
return addr.ToString ( ) ;Top
8 楼doubon(DB.NET)回复于 2005-02-25 16:48:44 得分 10
Request.UserHostAddressTop
9 楼yuqingjiang()回复于 2005-02-25 17:12:54 得分 10
是AddressList[0]Top
10 楼sswv(林健)回复于 2005-02-26 12:27:26 得分 10
AddressList[0]只是第一个本机IP,很多情况下我们会有多个IP。
private IPAddress myIP = IPAddress.Parse("127.0.0.1"); //本机IP
private ArrayList ar; //IP列表
private IPHostEntry myHost = new IPHostEntry(); //本机
private void RefreshIP()
{
//获知本机IP
myHost = Dns.Resolve(Dns.GetHostName());
foreach(IPAddress ip in myHost.AddressList)
{
ar.Add(ip.ToString());
}
}Top
11 楼wingnal(清淡天和)回复于 2005-02-26 12:51:42 得分 10
string s_ip;
if(Request.ServerVariables["HTTP_VIA"]!=null)
s_ip=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
else
s_ip=Request.ServerVariables["REMOTE_ADDR"].ToString();Top
12 楼web_gus(树欲静而风不止)回复于 2005-02-26 13:17:55 得分 0
upTop
13 楼yaopeng117(尋找屬於自己的道,堅定不移的走下去。)回复于 2005-02-26 13:42:07 得分 0
upTop
14 楼momentmobile(瞬间移动)回复于 2005-02-26 13:59:37 得分 0
upTop
15 楼Johnnyxy(风里密码)回复于 2005-02-26 15:33:25 得分 10
string ComputerName = Dns.GetHostName();
IPHostEntry myHost = new IPHostEntry();
myHost = Dns.Resolve(ComputerName);
for(int i;i < myHost.AddressList.Length;i++)
{
Console.WriteLine("{0}",myHost.AddressList[i].ToString());
}
不要忘记using System.Net;哦Top
16 楼gigiliang(他骗我)回复于 2005-02-26 15:57:57 得分 10
楼主讲的是"本机在Internet上的IP地址 ",这个是动态分配的,可大家都是在获取本机的第一个IP地址Top
17 楼momentmobile(瞬间移动)回复于 2005-02-26 16:23:23 得分 0
upTop
18 楼zjwuweim(冰火)回复于 2005-03-14 12:59:20 得分 0
up
楼上的楼上说的没错,怎么获取Internet上的IP,WinForm下Top
19 楼amendajing(学习,是个漫长的旅途!)回复于 2005-03-14 13:07:40 得分 0
markTop
20 楼egxsun(egxsun)回复于 2005-03-14 13:24:02 得分 0
如果是在局域网里通过服务器上网的可能得不到吧Top
21 楼zjwuweim(冰火)回复于 2005-03-16 09:25:04 得分 0
upTop
22 楼hivak47(比尔)回复于 2005-03-16 09:46:35 得分 0
可以得到的。Top
23 楼tjtao(我爱Mary)回复于 2005-03-16 10:20:25 得分 0
关注~Top
24 楼xjtao(风云之剑)回复于 2005-03-16 12:44:36 得分 0
如果是通过共享上网,通过NAT转换的,本机是不知道上网出口网关的IP地址的。以前写到类似的程序时,考虑过这个问题,上述解答都是获得了本机本地的IP地址,非楼主所要求的。
我程序里最终是通过,向网外发送一条信息,由对 方告知你的出口IP地址,这个很容易实现,你可以自己写个程序放服务器上,也可以调别人的。Top
25 楼zjwuweim(冰火)回复于 2005-03-17 17:19:37 得分 0
5555~~~Top
26 楼zjwuweim(冰火)回复于 2005-03-19 13:40:13 得分 0
看来这样是没人知道了Top
27 楼Aallonlin(风之力)回复于 2005-03-19 13:48:56 得分 0
markTop
28 楼qiezic(破晓)回复于 2005-03-19 14:08:11 得分 0
要用API提取!Top
29 楼corbet(清风车影)回复于 2005-03-19 14:35:50 得分 0
帮你顶一下!Top
30 楼sswv(林健)回复于 2005-03-19 15:45:41 得分 0
private IPAddress myIP = IPAddress.Parse("127.0.0.1"); //本机IP
private IPHostEntry myHost = new IPHostEntry(); //本机
private void RefreshIP()
{
//获知本机IP
myHost = Dns.Resolve(Dns.GetHostName());
cbbLocalIP.Items.Clear();
cbbLocalIP.Items.Add("127.0.0.1");
foreach(IPAddress ip in myHost.AddressList)
{
cbbLocalIP.Items.Add(ip.ToString());
}
cbbLocalIP.SelectedIndex = 0;
}Top
31 楼corbet(清风车影)回复于 2005-03-19 16:52:54 得分 0
帮你顶一下!Top
32 楼lp_net(adela)回复于 2005-03-19 16:56:52 得分 0
学习Top
33 楼BigIdiot628(大笨蛋,谁叫你不努力!)回复于 2005-03-19 17:15:26 得分 0
学习,帮自己顶一下。Top
34 楼lianmycc(越)回复于 2005-03-19 17:35:25 得分 0
upTop
35 楼conan19771130(残疾人程序员,学习第2门外语)回复于 2005-03-19 17:36:47 得分 0
IPHostEntry ipHostInfo = Dns.Resolve(this.m_strServerIP);
IPAddress ipAddress = ipHostInfo.AddressList[0];Top
36 楼zjwuweim(冰火)回复于 2005-03-22 10:29:07 得分 0
哎~去学web编程吧,windows咋这样呢Top
37 楼xjaifly(tiantian)回复于 2005-03-22 10:53:47 得分 0
好想都是获取本机的 IP 吧!
Top
38 楼morou_007(默柔)回复于 2005-03-22 11:04:53 得分 0
GetHostByName ( )方法的返回值时IPHostEntry 对象,此对象的属性 AddressList,是一个IPAddress类型的数组,包含了计算机此时的所有的IP地址信息。在ip01.cs中AddressList [0].Address是固定的IP地址,而对于上网动态分配的IP地址是.AddressList [1].Address。据此我们可以的得到读取拨号上网动态分配的IP地址的源程序:
System.Net.IPAddress addr;// 获得拨号动态分配IP地址addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [1].Address ) ;return addr.ToString ( ) ;
我们也可以通过设定AddressList的不同值来得到机器不同的IP地址。Top
39 楼corbet(清风车影)回复于 2005-03-22 11:34:44 得分 0
顶上去!Top
40 楼egxsun(egxsun)回复于 2005-03-22 11:35:28 得分 0
上面的方法也得不到的Top
41 楼yezie(椰子)(.Net)回复于 2005-03-22 11:58:59 得分 0
Dns.GetHostName();Top
42 楼grf601006617(宫崎锋)回复于 2005-03-22 14:24:41 得分 0
upTop




