RasDial命令 实现个ADSL偶尔拨号失败有关问题请问,进入有vb代码贴出,
RasDial命令 实现个ADSL偶尔拨号失败问题请教,进入有vb代码贴出,急
第一次调用拨号基本上都能拨上号,ip也能换,为什么拨多了2次就很容易失败
我想实现个抓取工具,结果抓取多了,就想重新拨号换ip
结果呢,会出现拨不上号的现象,有时拨上了ip也没换,不知道是什么原因?
请大家出出主意,谢谢,关键代码帖个大家看看。
temp = AddConnection("宽带连接", "", "", "123123123@gd.13", "DFSDFD", "") 'ADSL
Public Function AddConnection(strNewEntryName As String, strNewPhoneNumber As String, strNewCallbackNumber As String, strNewUsername As String, strNewPassword As String, strNewDomain As String) As Integer
Dim lngRetCode As Long
Dim lngRetLstrcpy As Long
Dim lngRetHangUp As Long
Dim lprasdialparams As RASDIALPARAMS95
If GetConnections() > 0 Then
AddConnection = lngRetCode: Exit Function '·à?1?à??á??ó ±£3?ò???á??ó
End If
lprasdialparams.dwSize = 1052 '?úWINDOWS95/98?D±?D???dwSizeéè?a1052
'à?ó?lstrcpyoˉêy??×?·?′???±′μ?BYTEêy×é
lngRetLstrcpy = lstrcpy(lprasdialparams.szEntryName(0), strNewEntryName)
lngRetLstrcpy = lstrcpy(lprasdialparams.szPhoneNumber(0), strNewPhoneNumber)
lngRetLstrcpy = lstrcpy(lprasdialparams.szCallbackNumber(0), strNewCallbackNumber)
lngRetLstrcpy = lstrcpy(lprasdialparams.szUserName(0), strNewUsername)
lngRetLstrcpy = lstrcpy(lprasdialparams.szPassword(0), strNewPassword)
lngRetLstrcpy = lstrcpy(lprasdialparams.szDomain(0), strNewDomain)
'?ò??ê1ó?í?2?í¨D?
Screen.MousePointer = vbHourglass
hRasConn = 0 '
lngRetCode = RasDial(ByVal APINULL, vbNullString, lprasdialparams, APINULL, ByVal APINULL, hRasConn)
Screen.MousePointer = vbDefault
'2aê?óD??óD′í?ó
If lngRetCode Then
lngRetHangUp = RasHangUp(hRasConn)
End If
AddConnection = lngRetCode
End Function
------解决方案--------------------
用过这种,但没遇到你说的情况。与你的ADSL设备质量有关?
------解决方案--------------------
第一次调用拨号基本上都能拨上号,ip也能换,为什么拨多了2次就很容易失败
我想实现个抓取工具,结果抓取多了,就想重新拨号换ip
结果呢,会出现拨不上号的现象,有时拨上了ip也没换,不知道是什么原因?
请大家出出主意,谢谢,关键代码帖个大家看看。
temp = AddConnection("宽带连接", "", "", "123123123@gd.13", "DFSDFD", "") 'ADSL
Public Function AddConnection(strNewEntryName As String, strNewPhoneNumber As String, strNewCallbackNumber As String, strNewUsername As String, strNewPassword As String, strNewDomain As String) As Integer
Dim lngRetCode As Long
Dim lngRetLstrcpy As Long
Dim lngRetHangUp As Long
Dim lprasdialparams As RASDIALPARAMS95
If GetConnections() > 0 Then
AddConnection = lngRetCode: Exit Function '·à?1?à??á??ó ±£3?ò???á??ó
End If
lprasdialparams.dwSize = 1052 '?úWINDOWS95/98?D±?D???dwSizeéè?a1052
'à?ó?lstrcpyoˉêy??×?·?′???±′μ?BYTEêy×é
lngRetLstrcpy = lstrcpy(lprasdialparams.szEntryName(0), strNewEntryName)
lngRetLstrcpy = lstrcpy(lprasdialparams.szPhoneNumber(0), strNewPhoneNumber)
lngRetLstrcpy = lstrcpy(lprasdialparams.szCallbackNumber(0), strNewCallbackNumber)
lngRetLstrcpy = lstrcpy(lprasdialparams.szUserName(0), strNewUsername)
lngRetLstrcpy = lstrcpy(lprasdialparams.szPassword(0), strNewPassword)
lngRetLstrcpy = lstrcpy(lprasdialparams.szDomain(0), strNewDomain)
'?ò??ê1ó?í?2?í¨D?
Screen.MousePointer = vbHourglass
hRasConn = 0 '
lngRetCode = RasDial(ByVal APINULL, vbNullString, lprasdialparams, APINULL, ByVal APINULL, hRasConn)
Screen.MousePointer = vbDefault
'2aê?óD??óD′í?ó
If lngRetCode Then
lngRetHangUp = RasHangUp(hRasConn)
End If
AddConnection = lngRetCode
End Function
------解决方案--------------------
用过这种,但没遇到你说的情况。与你的ADSL设备质量有关?
------解决方案--------------------
Public Type RASCONN95
dwSize As Long
hRasConn As Long
szEntryName(256) As Byte
szDeviceType(16) As Byte
szDeviceName(128) As Byte
End Type
Public Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(16) As Byte
szDeviceName(128) As Byte
End Type
Public Type RASDIALPARAMS95
dwSize As Long
szEntryName(256) As Byte
szPhoneNumber(128) As Byte
szCallbackNumber(128) As Byte
szUserName(256) As Byte
szPassword(256) As Byte
szDomain(15) As Byte
End Type
Public Declare Function RasGetConnectStatus Lib "RasApi32.DLL" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
Public Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (lpString1 As Any, ByVal lpString2 As String) As Long