VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

VFP如何去判斷某個IP是否能ping通?

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
whh



註冊時間: 2010-04-16
文章: 166


第 1 樓

發表發表於: 星期四 四月 21, 2011 3:11 pm    文章主題: VFP如何去判斷某個IP是否能ping通? 引言回覆

因為有時候會要內部丟檔案

每次都要做一些重附動作好麻煩

開始→輸入IP→輸入帳號密碼→才能開啟C:...等

有寫一段程式如下

&& 自動輸入帳號密碼
C_IP = ALLTRIM(THISFORM.TEXT1.VALUE)
IF EMPTY(C_IP)
RETURN ""
ENDIF
C_STR = 'net use \\' + C_IP + '\c$ 密碼 /user:"mynet\帳號"'
! &C_STR

&& 開啟資料夾
C_STR ='EXPLORER.EXE \\' + C_IP + '\c$'
! &C_STR

可是有一個問題是如果,IP打錯或是那台電腦沒開機

就要等等等等......

是否有可以類似CMD ping的功能
ping不到就Ctrl+C (不用等他好幾秒等回傳連不到)

有連到在在執行我的程式
回頂端
檢視會員個人資料 發送私人訊息
LiuRambo



註冊時間: 2007-11-27
文章: 481


第 2 樓

發表發表於: 星期四 四月 21, 2011 3:53 pm    文章主題: 引言回覆

寫段小程式去解析ARP -A出來的結果
看看對方電腦IP有無在其中
用PING的結果會因為各版本OS出來的結果會稍有不同
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 3 樓

發表發表於: 星期五 四月 22, 2011 3:19 pm    文章主題: 引言回覆

MyDll.dll 中有提供 ping 的函數
去搜尋看看吧
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期五 四月 22, 2011 3:35 pm    文章主題: 引言回覆

如果你的問題是 "PING 下去要等一段時間才知道有沒有PING到,想要縮短時間或不需要時間",
那好像就無解.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
zlabsoft



註冊時間: 2003-10-18
文章: 22


第 5 樓

發表發表於: 星期六 四月 30, 2011 12:07 pm    文章主題: 引言回覆

可参考以下程式:

LPARAMETERS lcServer, lnPort, lcDebug
LOCAL lnState, loPing, lnLast
*
* Ping utility Ver 1.4
*
*** Input :
*
* lcServer - Host name to ping
* lnPort - Port number to ping
* lcDebug - .T.: Display status message
*
*** Output :
*
* .T. - Ping successfully
* .F. - Ping Fail
*
* Description : Ping a host for specify port availability
* Require Microsoft Winsock ActiveX version 6.0 (SP4)
* mswinsck.ocx - 109,248 bytes
* locate at C:\WINDOWS\SYSTEM32
*
* Example: ? PING('jassing.com',80) would check jassing.com to be sure it's running a web server
*
* 24/05/2005 - Error handling when winsock is not proper installed
* 05/08/2004 - Ping delay increase to 1/10 sec instead of 1/20 sec
* 13/04/2002 - Last status message show 2 seconds before leave when debug is 'ON'
* 12/04/2002 - Minor code updated
* 11/04/2002 - Code modify from original
*
* By: josh@jassing.com modified by Tommy Tsang
*
#DEFINE sckClosed 0
#DEFINE sckOpen 1
#DEFINE sckListening 2
#DEFINE sckConnectionPending 3
#DEFINE sckResolvingHost 4
#DEFINE sckHostResolved 5
#DEFINE sckConnecting 6
#DEFINE sckConnected 7
#DEFINE sckClosing 8
#DEFINE sckError 9

loPing = CREATEOBJECT('mswinsock.winsock')
IF VARTYPE(loPing) = 'O'
WITH loPing
.remoteport = lnPort
.remotehost = lcServer
.CONNECT()
lnLast = -1
DO WHILE .state < sckConnected
IF lnLast <> .state
PINGSTATE(.state, lcDebug)
lnLast = .state
ELSE
*
* Wait a little while to release the loading of system
*
INKEY(.1) && Delay 1/10 second
ENDIF
ENDDO

PINGSTATE(.state, lcDebug)
lnState = .state
.CLOSE()

PINGSTATE(.state, lcDebug, 2)

ENDWITH
ENDIF

RETURN lnState <> sckError


PROCEDURE PINGSTATE
LPARAMETERS lnState, lcDebug, lnTimeOut
LOCAL lcState

IF lcDebug
DO CASE
CASE lnState = sckClosed
lcState = 'Closed'
CASE lnState = sckOpen
lcState = 'Open'
CASE lnState = sckListening
lcState = 'Listening'
CASE lnState = sckConnectionPending
lcState = 'Waiting'
CASE lnState = sckResolvingHost
lcState = 'Resolving'
CASE lnState = sckConnecting
lcState = 'Connecting'
CASE lnState = sckConnected
lcState = 'Connected'
CASE lnState = sckClosing
lcState = 'Closing'
CASE lnState = sckError
lcState = 'Error'
OTHERWISE
lcState = 'Unknown'
ENDCASE

IF VARTYPE(lnTimeOut) = 'N'
WWAIT('Ping State: ' + lcState, .F., lnTimeOut)
ELSE
WWAIT('Ping State: ' + lcState)
ENDIF
ENDIF
RETURN lcState
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
andywilliams



註冊時間: 2004-10-23
文章: 111


第 6 樓

發表發表於: 星期日 五月 01, 2011 11:26 am    文章主題: 引言回覆

owsh=CREATEOBJECT("wscript.shell")
owsh.RUN(C_STR ,0,.T.)
IF !DIRECTORY('\\'+C_IP +'\c$')
MESSAGEBOX("請稍後再試或檢查網路線或是那台電腦沒開機", 0+16+256, "連線失敗")
*quit
return
ENDIF
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
whh



註冊時間: 2010-04-16
文章: 166


第 7 樓

發表發表於: 星期三 五月 11, 2011 9:06 am    文章主題: 引言回覆

andywilliams 寫到:
owsh=CREATEOBJECT("wscript.shell")
owsh.RUN(C_STR ,0,.T.)
IF !DIRECTORY('\\'+C_IP +'\c$')
MESSAGEBOX("請稍後再試或檢查網路線或是那台電腦沒開機", 0+16+256, "連線失敗")
*quit
return
ENDIF



剛剛搜尋了一下
測試以下兩行就出現
owsh=createobject("wscript.shell")&&調用WSH
owsh.run("command.com /c ping 192.170.170.170 -w 2 >ftp.txt",0,.t.)&&執行


OLE錯誤程式碼 0x8002802b: Element not found 是我沒有註冊這個東西嗎><"?

要去哪邊註冊,使用版本是VFP 6.0
回頂端
檢視會員個人資料 發送私人訊息
whh



註冊時間: 2010-04-16
文章: 166


第 8 樓

發表發表於: 星期三 五月 11, 2011 9:15 am    文章主題: 引言回覆

剛剛搜尋了一下
測試以下兩行就出現
owsh=createobject("wscript.shell")&&調用WSH
owsh.run("command.com /c ping 192.170.170.170 -w 2 >ftp.txt",0,.t.)&&執行


OLE錯誤程式碼 0x8002802b: Element not found 是我沒有註冊這個東西嗎><"?

要去哪邊註冊,使用版本是VFP 6.0[/quote]

找到方法了 參考這篇的^^
http://chiahu.com/blog/?p=461
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作