RAS的局域网问题(150分)

  • 主题发起人 主题发起人 DNChen
  • 开始时间 开始时间
D

DNChen

Unregistered / Unconfirmed
GUEST, unregistred user!
不知道如何用检查本机已经连上了Internet,获取连上和断开的信息,包括其他程序拨号。我用RAS控件发现无法满足要求,因为RAS控件无法区分局域网还是Internet,有没有办法解决?
 
可能得去判断你机器上的TCP/IP配置中的主机地址是否PING得通,

若通,则可认为已连接上Internet.
 
SORRY,没找到。
BTW:收到了吗?
 
难道只能用ping,没有其他方法可以解决吗?

 
有个测试服务器连接的控件, 你试试看.
 
ping 来测试是最简单的了
 
我觉得发送arp包最简单,不过用ping最好做,况且在程序里加一段ping的
东西有不麻烦。
 
我有一个很库的Ras.pas包,可以完成RAS的全部操作,列出当前所有RAS连接及类型,有例子如果需要可Mail:chczk@263.net
 
RAS的API我非常熟,这类控件我基本都读过了。RAS本身提供的API似乎不能作到
我提的问题,只能从其他方面着手的
 
如果图简单,可以使用 TclientSocket的连接就可以测试需要连接的地方是不是已经连通!
 
有一个控件DELPHI RAS COMPONENT - version 3.0
http://www.magsys.co.uk/delphi/
它有一个例子,我编译了在我的NT上运行了
他可以知道我另外的程序拨号连接的情况
Demo显示以下一些信息:
状态行上显示DUN 169- connected/Online
IP地址,拨号服务IP地址等等。
我想应该可以满足你的要求吧?
我研究程序发现:
该控件有事件:OnStateChanged,OnConnect,OnDeconnect等等
方法:GetConnectStatus,GetIpAddress
我想信能够解决你的问题。
该控件需要我发Email给你吗?
该控件有源程序。
 
这个控件我早玩过了,原程序都已经读过2遍了,

谢谢!
 
我理解你的目的是:获取连上和断开的信息,包括其他程序拨号产生的连接和断开信息。是吗?
我用RASCOMP32组件的DEMO在我的NT上可以监视我的WINROUTE 拨号情况
连接情况,PPP IP地址,ISP 拨号服务器IP地址,我不知道是否符合你的要求.

是不是我说的组件和你用的组件不一样,请检查下表,比较一下.
RAS_AP~1 PAS 27,479 03-28-99 14:49 ras_api32.pas
DEMO PAS 12,811 03-28-99 14:58 demo.pas
DEMO DFM 3,523 03-28-99 14:48 demo.dfm
RASCOM~1 DCR 464 04-02-96 10:53 rascomp32.dcr
RASCOM~1 PAS 57,827 03-23-99 11:42 rascomp32.pas
RASDEMO DPR 289 08-07-98 12:25 rasdemo.dpr
WINPERF PAS 26,911 08-07-98 12:25 winperf.pas
README TXT 4,062 03-28-99 15:00 readme.txt
RASDEMO RES 876 05-22-98 14:57 rasdemo.res
RASCMP30 UPL 1,624 03-29-99 11:11 rascmp30.upl
 
就这个玩意,我说的局域网可不是主机,而是其他机器,通过主机的MODEM上网,
这些机器无法判断是否真的连上网的,我想这个问题通过ras肯定是不行了,要走
其他路子的
 
Delphi中带有一个单元WinInet.pas, 是MS WinInet.dll的声明单元, 所有的Intenet
相关的函数都在那里。要想知道当前的连接状态,可用下面这个函数:
function InternetGetConnectedState(lpdwFlags: LPDWORD;
dwReserved: DWORD): BOOL; stdcall;

Returns TRUE if there is an Internet connection, FALSE otherwise.

lpdwFlags--Address of a double-word variable where the connection
description should be returned. Can be a combination of
the following values:
INTERNET_CONNECTION_MODEM Local system uses a modem to
connect to the Internet.
INTERNET_CONNECTION_LAN Local system uses a local area
network to connect to the Internet.
INTERNET_CONNECTION_PROXY Local system uses a proxy
server to connect to the Internet.
INTERNET_CONNECTION_MODEM_BUSY Local system's modem is busy
with a non-Internet connection.
dwReserved -- Reserved. Must be set to zero.
 
如果要证明是否连接到Internet只需要去PING
你的ISP提供的DNS地址,只要PING通,证明已经
连上Internet.该服务器绝对24小时连续运行,
如果不保险需要在验证备用DNS地址.
你要连上Internet,必须有ISP吧,如果不想检查
DNS,也可以检查ISP的路由器地址.
在程序中使用PING组件,可以用程控的方式去发
PING指令.
不知此方法是否有效?

 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部