如何判断网络连接状态和获取网络IP地址

cfjun 2009-07-10 03:16:59
问题1:如何判断网络已经连接(50)
问题2:获取网络IP地址(50)
要求能适应拨号上网和通过局域网上网。两种上网方式
...全文
1803 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSCFheweichao 2012-09-04
  • 打赏
  • 举报
回复
LZ骂的太经典了!有些人就是不懂装B!
kaka_1983 2011-12-02
  • 打赏
  • 举报
回复
放你们妈妈的屁,老子随便登录几个网站,有的网站关了,有的网站在运营,老子登不上某个网站,就判断为老子未连接到internet?你妈妈的,什么智商,什么垃圾思想,还显摆这点垃圾的,不严谨的代码,弱智
jaywilljay 2010-10-15
  • 打赏
  • 举报
回复

Ping ping =new Ping();
PingReply res;
res=ping.Send("www.baidu.com");
if (res.Status != IPStatus.Success)
{
"没有联网"
}

这样子不更好吗?自己在完善一下就OK了
manberman 2010-10-13
  • 打赏
  • 举报
回复
非常感谢Lost_Painting!!!
solpie 2009-12-24
  • 打赏
  • 举报
回复
我觉得还是看能否打开某个网页好实现,因为我们自己判断也是这样的
xu_119 2009-07-11
  • 打赏
  • 举报
回复
关注。。
风之影子 2009-07-11
  • 打赏
  • 举报
回复
呵呵貌似很难噢!
阿牛138588 2009-07-11
  • 打赏
  • 举报
回复
DNS.GetHost("www.sohu.com")可以Get出来就证明上网了
superliubao 2009-07-11
  • 打赏
  • 举报
回复
学习了!
  • 打赏
  • 举报
回复
ding!
aaa_zzz_333 2009-07-11
  • 打赏
  • 举报
回复
ding...
zhangyanyang 2009-07-11
  • 打赏
  • 举报
回复
private static string getIPAddress ( ) 
{
System.Net.IPAddress addr;
// 获得本机局域网IP地址
addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ;
return addr.ToString ( ) ;
}
}
peterb 2009-07-11
  • 打赏
  • 举报
回复
If My.Computer.Network.IsAvailable Then
Debug.WriteLine(True)
Else
Debug.WriteLine(False)
End If

另外可以参考C#检测网络的连接状态
netstray 2009-07-11
  • 打赏
  • 举报
回复
获取一个DNS来判断
jscn123789abc 2009-07-11
  • 打赏
  • 举报
回复
11楼和14楼的代码很搞笑,呵呵。。。。。
鸭梨山大帝 2009-07-10
  • 打赏
  • 举报
回复
这样说吧,因为你是通过路由的方式上网的
所以你不可能直接从你本机就得知你是否Internet已经连通,必须发起请求给路由,路由再检测是否已经连通Internet,然后返回是否成功的标记以及返回请求的内容.
所以不论什么程式一定不会只是检测本地的链接,需要跟路由交互,路由跟ISP DNS打交道.
而且其实存在是否真正连通的问题
即使路由已经取得外网IP,也不见得就是通的,因为电信有时候出现假链接的情况
所以我的方法是最笨也是最保险的.
你想下, google 每天挂掉的机率是 1/10W (至少我最近几年顶多听到几次google中国瘫痪的)
baidu 也是差不多的几率
你觉得不保险,你可以 同时用我的代码去访问 几个门户或者搜索引擎,同时挂的几率貌似接近于0吧?
退一步说,如果同时挂了,是不是就代表电信线路挂了,你也压根就不能上网呢?


[Quote=引用 16 楼 cfjun 的回复:]
楼上的我明白,但是如果对方网站打不开,而其他网站又打的开,那么程序没能正确检测就连baidu和google都有连不上的时候哈哈
有没有不依赖别人网站的程序检测网络状态和IP地址?
[/Quote]
cfjun 2009-07-10
  • 打赏
  • 举报
回复
楼上的我明白,但是如果对方网站打不开,而其他网站又打的开,那么程序没能正确检测就连baidu和google都有连不上的时候哈哈
有没有不依赖别人网站的程序检测网络状态和IP地址?
鸭梨山大帝 2009-07-10
  • 打赏
  • 举报
回复
oH.. 转换C#忘记漏写一句 把 WebClient.dispose 了
鸭梨山大帝 2009-07-10
  • 打赏
  • 举报
回复
照顾楼主不认识VB.NET的语法,转换为C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Net;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
WebClient wb = new WebClient();
String strIP = "";
String strContent = "";
Regex regIP = new Regex("\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}");
try
{
strContent = wb.DownloadString("http://www.ip138.com/ips8.asp");
if (strContent.IndexOf("IP地址查询") >= 1)
{
textBox1.Text = "爽,可以上网!";
strIP = regIP.Match(strContent).ToString();
if (strIP.Trim() != "")
{
textBox2.Text = "俺的IP是:" + strIP;
}
else
{
textBox2.Text = "虽然俺上网了,但是俺是黑户,没IP!";
}
}
}
catch
{
textBox1.Text = "真不爽,不能上网,我去炸了电信!";
textBox2.Text = "不能上网,没IP!";
}
}
}
}

cfjun 2009-07-10
  • 打赏
  • 举报
回复
wuyq11的代码好象大概可能应该对了
但是我没看懂,能不能写详细点给我看,我是新手,昨天才使用C#
比如要添加什么using也顺便说下咯
加载更多回复(12)

110,577

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧