企业网站推广费用,软装工作室,做论坛和做网站有什么区别,阿里云备案域名购买1.前言 首先要实现这个功能#xff0c;必须先搞懂如何通过C调用python脚本文件最为关键#xff0c;因为两者的环境不同。本质上是在 c 中启动了一个 python 解释器#xff0c;由解释器对 python 相关的代码进行执行#xff0c;执行完毕后释放资源。
2 模块功能
2.1python… 1.前言 首先要实现这个功能必须先搞懂如何通过C调用python脚本文件最为关键因为两者的环境不同。本质上是在 c 中启动了一个 python 解释器由解释器对 python 相关的代码进行执行执行完毕后释放资源。
2 模块功能
2.1python
2.1.1 python功能 通过ldap3协议实现NTLM的认证因此主体功能基本全是由python实现。
2.1.2 python的环境支持 sudo apt install python3-pip //安装python环境的支持 上面这条命令你要注意如果你有其他的python版本或许你可以不使用python3-pip工具而单独的安装pip管理工具。ubuntu是上你可以通过cd /usr/bin/下ls python*查看你有多少个python的版本。 pip install ldap3 //安装ldap3用于认证 2.1.3 python代码的实现NTLM认证 python我不懂只能粗略的了解代码功能因为这里的实现是非常简单的代码量非常的少。
因此哪怕是第一次接触python的基本也能看懂只要你有其他语言的基本功。这里先使用ubuntu命令行进行NTLM认证便于查看错误信息。想放在python.py中将第三步以下全部命令放到.py文件中在文件开头添加 import ldap3就可以了。 第一步运行python3 第二步导入ldap3模块 import ldap3 如果你在导入模块的时候出现了类似这种报错信息说明了你的pip工具安装ldap3并没有安装到python3中你需要判断出ldap安装在哪个版本中通过2.1.2的内容查看你有多少个版本然后修改第一步导入的python版本。或者你根本没有安装ldap3 import ldap3 Traceback (most recent call last): File stdin, line 1, in module ModuleNotFoundError: No module named ldap3 第三步传入你服务器的IP serverldap3.Server(ldap://AD服务器地址端口号) 第四步传入你需要认证的用户信息 connldap3.Connection(server,userusername,authenticationldap3.NTLM,passwordusername) 第五步conn.bind() 进行绑定 三四步只是保存信息不会发生任何情况你参数的错误全是在这一步进行判断通过返回对应的ldap_error_code,检查你导入数据的错误如果成功返回 true 2.2 C
2.2.1 C功能 C只是负责传递认证账号的信息usernameuserpasswd等。还有接收python的返回值基本是ldap的error_code。
2.2.2 C调用python 这里我就不详细解释如何调用因为CSDN大佬发了很多文章包括小破站也有视频教学。这里推荐几篇文章再简单说一下我用的使用不懂以及出现错误的地方希望对python不懂的有帮助 PyRun_SimpleString(sys.path.append(./script)); //这里传入 python脚本路径的时候不要写入脚本文件名只需要制定python脚本所在的文件夹即可 pModule PyImport_ImportModule(myadd); //这里传入的模块名字是你python脚本的文件名不要加.py pFunc PyObject_GetAttrString(pModule, say); //这里传入的方法就是python中你封装的方法例如这里面的方法就是say类似于C/C的大括号def say():以下的所有缩进内容都属于这个方法 C调用Python的方法 //这篇文章非常的好非常详细如果我编写的时候看的这个文章起码节约半个小时所以我这篇文章主要是偏向如何使用python脚本实现NTLM认证。
3.结言 加油