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

請教:如何取得局域網路上某個IP地址的MAC地址

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



註冊時間: 2004-02-28
文章: 26


第 1 樓

發表發表於: 星期一 五月 16, 2005 3:14 pm    文章主題: 請教:如何取得局域網路上某個IP地址的MAC地址 引言回覆

MYDLL只能取得本機的MAC地址
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 2 樓

發表發表於: 星期一 五月 16, 2005 3:30 pm    文章主題: 引言回覆

困難.......

但不是沒有辦法.

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

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



註冊時間: 2004-02-28
文章: 26


第 3 樓

發表發表於: 星期一 五月 16, 2005 3:42 pm    文章主題: 是有點難度 引言回覆

所以試了一段時間 只好請教高手了
回頂端
檢視會員個人資料 發送私人訊息
小賴



註冊時間: 2004-12-27
文章: 470


第 4 樓

發表發表於: 星期一 五月 16, 2005 9:54 pm    文章主題: 引言回覆

試試這方法 :


PARAMETERS cIPAddress
LOCAL cCommandStr, cFileText, nPoisition
IF EMPTY(cIPAddress)
RETURN ""
ENDIF
cCommandStr = "NbtStat -A " + ALLTRIM(cIPAddress) + " > MAC.TXT"
RUN/N7 &cCommandStr
cFileText = FILETOSTR("MAC.TXT")
nPoisition = AT("MAC Address", cFileText)
IF nPoisition = 0
RETURN ""
ELSE
RETURN SUBSTR(cFileText, nPoisition+14, 17)
ENDIF
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
aqiang



註冊時間: 2004-02-28
文章: 26


第 5 樓

發表發表於: 星期二 五月 17, 2005 9:54 am    文章主題: 謝謝小賴兄 引言回覆

請問可不可以去掉DOS執行窗口

原程序如下
PARAMETERS cIPAddress
LOCAL cCommandStr, cFileText, nPoisition
IF EMPTY(cIPAddress)
RETURN ""
ENDIF
cCommandStr = "NbtStat -A " + ALLTRIM(cIPAddress) + " > MAC.TXT"
RUN &cCommandStr
cFileText = FILETOSTR("MAC.TXT")
nPoisition = AT("MAC Address", cFileText)
IF nPoisition = 0
RETURN ""
ELSE
RETURN SUBSTR(cFileText, nPoisition+14, 17)
ENDIF
回頂端
檢視會員個人資料 發送私人訊息
zlabsoft



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


第 6 樓

發表發表於: 星期二 五月 24, 2005 4:23 pm    文章主題: 引言回覆

可試試下列程式, 在 XP 下成功:

? ZGETMAC('192.168.1.1')

PROCEDURE ZGETMAC
LPARAMETERS lnLanCard
*
* 取得網卡 / ip Mac 地址 3.0
*
* 程式示例: lcMac = ZGETMAC(1)
*
*** 輸入參數 :
*
* lnLanCard - 數值, 第幾張網卡
* 字串, ip 地址
*
*** 輸出 : 字串, 12字元網卡 Mac 地址
*
****************************************
*
* 其他必需檔案 : mydll.dll
*
****************************************
*
* 程式內容 : 取得網卡 / ip Mac 地址
* 在 win9X 下未能取得 ip Mac 地址
* 前程式調用 FOCUS.FLL, 可惜為收費軟件
* 選擇以 mydll.dll 作為取得網卡 Mac address工具比其他工具優勢的地方:
* 程式簡潔, 體積細小, 免費, 免 dll 註冊, 另有其他用途.
*
* 24/05/2005 3.0 - 新增可檢測 ip 的 Mac 地址, 擇自 "紅雨"
* 22/05/2005 2.0 - 重新用 mydll.dll, 程式碼極度優化
* 31/07/2001 1.5 - 調用 FOCUS.FLL
* 29/07/2001 1.4 - 解決不能正常在 Win 2000 上運行
* 16/07/2001 1.3 - 暫存檔用隨機名稱
* 16/07/2001 1.2 - 刪除取得網卡 Mac 地址 的 EXE 檔案
* 15/07/2001 1.1 - 去掉 Mac 字串內的 "."
* 15/07/2001 1.0 - 初稿
*
* By: zlabsoft
*
IF VARTYPE(lnLanCard) = 'C'
LOCAL lcMacStr, lcWSADATA, lnRemoteAddr, lcMacAddress, lnReturnCode, lnLoop
#DEFINE WSADATA_SIZE 398
#DEFINE WS_VERSION 514
DECLARE INTEGER WSAStartup IN ws2_32 ;
INTEGER wVerRq, ;
STRING @lpWSAData

lcMacStr = '000000000000'
*
* 初始化 SOCKET
*
lcWSADATA = REPLICATE(CHR(0), WSADATA_SIZE)
IF WSAStartup(WS_VERSION, @lcWSADATA) = 0
*
* 發送ARP檢查封包取得遠程MAC地址
*
DECLARE INTEGER inet_addr IN ws2_32 ;
STRING cp
DECLARE INTEGER SendARP IN Iphlpapi ;
INTEGER nHost, ;
INTEGER unsigned, ;
STRING @, ;
INTEGER @

lnRemoteAddr = inet_addr(lnLanCard)
lcMacAddress = SPACE(6)
lnReturnCode = SendARP(lnRemoteAddr, 0, @lcMacAddress, 6)
IF lnReturnCode = 0
lcMacStr = ''
FOR lnLoop = 1 TO 6
lcMacStr = lcMacStr + RIGHT(TRANSFORM(ASC(SUBSTR(lcMacAddress,lnLoop,1)),'@0'),2)
ENDFOR
ENDIF
DECLARE INTEGER WSACleanup IN ws2_32
= WSACleanup()
ENDIF
ELSE
DECLARE STRING getmac IN 'MyDll.dll' ;
INTEGER NetCardNo

lcMacStr = LEFT(CHRTRAN(getmac(IIF(VARTYPE(lnLanCard) = 'N' AND lnLanCard > 0, lnLanCard, 1)), '.', ''), 12)
ENDIF

RETURN lcMacStr
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
ronald



註冊時間: 2006-04-21
文章: 4


第 7 樓

發表發表於: 星期一 六月 05, 2006 12:37 am    文章主題: 引言回覆

我想用mydll.dll, 我已download 'MyDll.dll' , 照這樣寫不成功

DECLARE STRING getmac IN 'MyDll.dll' INTEGER NetCardNo
lcMacStr = LEFT(CHRTRAN(getmac(IIF(VARTYPE(lnLanCard) = 'N' AND lnLanCard > 0, lnLanCard, 1)), '.', ''), 12)

Massage is "Cannot find entry point" getmac in the Dll
請教怎樣可 找'進入點'
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 8 樓

發表發表於: 星期一 六月 05, 2006 10:17 am    文章主題: 引言回覆

試著下載這個版本的mydll http://vfp.sunyear.com.tw/download.php?id=697
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
ronald



註冊時間: 2006-04-21
文章: 4


第 9 樓

發表發表於: 星期一 六月 05, 2006 1:50 pm    文章主題: 引言回覆

Dear Garfield,
原來我的version 太舊
thangs a lot.
Ronald
回頂端
檢視會員個人資料 發送私人訊息
lelhappy



註冊時間: 2004-06-04
文章: 20


第 10 樓

發表發表於: 星期二 十二月 19, 2006 5:20 pm    文章主題: 引言回覆

zlabsoft 寫到:

DECLARE STRING getmac IN 'MyDll.dll' INTEGER NetCardNo

lcMacStr = LEFT(CHRTRAN(getmac(IIF(VARTYPE(lnLanCard) = 'N' AND lnLanCard > 0, lnLanCard, 1)), '.', ''), 12)


為什麼 lnLanCard 不管為 1,2,3 都是第1張網卡卡號,第2,3張網卡卡號都出不來
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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