不用安装Wincap程序实现ARP广播包的发送和接收
? ? 這幾天由于項目需求,做了一個局域網ip和MAC地址搜索的程序,程序調試完成了但是有一個問題一直困擾這我,就是軟件打包后,每次都要安裝WinPcap后才能用自己的程序,很是煩人,經過幾天的測試終于找到了兩種方法,不需要安裝WinPcap。經過測試都沒有問題。
? ? 方法一:經過很多次的分析,程序主要是用到了WinPcap的一個驅動文件,當安裝Wincap程序后你會發現 ?在C:\WINDOWS\system32\drivers下面會有一個npf.sys文件,系統下的驅動,在C:\WINDOWS\system32文件夾下會發現WinPcap相關的庫文件,其中有一個paket.dll庫就是我在程序中用到的庫。這時你可以把這個npf.sys文件拷出來,再把Wincap卸載掉,此時運行自己的程序是不能實現IP和MAC地址的搜做的,這時可以把剛才拷出來的文件npf.sys重新拷貝到C:\WINDOWS\system32\drivers下面,再運行自己的程序,你會奇跡般的發現可以正常搜索。所以這個npf.sys文件是很重要的,現在的方法是你可以在程序中編寫一個copy程序,把npf.sys文件拷貝到C:\WINDOWS\system32\drivers文件夾下。這樣就OK了。
? ? 方法二:方法一其實實現起來比較簡單而且方便,但是還有一個更好的辦法。其實通過分析發現npf.sys就是系統的一個驅動,你只要把它加載注冊表中,就把這個驅動加載好了。當你把npf.sys文件拷貝到C:\WINDOWS\system32\drivers下面時系統會自動加載到注冊表如下圖:system32\drivers\npf.sys
現在我們怎么辦那,我們也可以仿照這個自己加載這個NPF驅動程序到注冊表,只是我們加載路徑不是系統路徑,可以把npf.sys文件拷貝到我們的工程中,通過程序創建注冊表,并加載我們自己的路徑驅動。這樣就不用在程序打包后每次安裝時先要安裝WinPcap程序。
? ? ? 經過測試兩種方法都能實現功能,只是第二種方法稍微麻煩點。還有要注意的是32位系統和64位系統用到的npf文件是不一樣的。在不同系統中要加載不同的文件。
總結
以上是生活随笔為你收集整理的不用安装Wincap程序实现ARP广播包的发送和接收的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用网站地址集合
- 下一篇: python中format使用