python简单实现基于SSL的IRC bot实例
本文实例讲述了python简单实现基于SSL的 IRC bot。分享给大家供大家参考。具体如下:
#!/usr/bin/python # -*- coding: utf8 -*- import socket, string, time, ssl import urllib, re network = 'irc.server.net' nick = 'nickname' chan = 'bot' port = 6697 socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) def main(network, nick, chan, port): socket.connect((network,port)) irc = ssl.wrap_socket(socket) irc.send('NICK %s\r\n' % nick) print irc.recv(4096) irc.send('USER %s %s %s :My bot\r\n' % (nick,nick,nick)) print irc.recv(4096) irc.send('JOIN #%s\r\n' % chan) print irc.recv(4096) while True: data = irc.recv(4096) print data if data.find('PING') != -1: irc.send('PONG '+data.split()[1]+'\r\n') if data.find('!gtfo\r\n') != -1: irc.send('QUIT\r\n') exit() print data if __name__=='__main__': main(network, nick, chan, port)
希望本文所述对大家的Python程序设计有所帮助。
相关推荐
-
python smtplib模块发送SSL/TLS安全邮件实例
python的smtplib提供了一种很方便的途径发送电子邮件.它对smtp协议进行了简单的封装. smtp协议的基本命令包括: HELO 向服务器标识用户身份 MAIL 初始化邮件传输 mail from: RCPT 标识单个的邮件接收人:常在MAIL命令后面,可有多个rcpt to: DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束 VRFY 用于验证指定的用户/邮箱是否存在:由于安全方面的原因,服务器常禁止此命令 EXPN 验证给定的邮箱列表是否
-
Python语言实现机器学习的K-近邻算法
写在前面 额...最近开始学习机器学习嘛,网上找到一本关于机器学习的书籍,名字叫做<机器学习实战>.很巧的是,这本书里的算法是用Python语言实现的,刚好之前我学过一些Python基础知识,所以这本书对于我来说,无疑是雪中送炭啊.接下来,我还是给大家讲讲实际的东西吧. 什么是K-近邻算法? 简单的说,K-近邻算法就是采用测量不同特征值之间的距离方法来进行分类.它的工作原理是:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系
-
一个检测OpenSSL心脏出血漏洞的Python脚本分享
什么是SSL? SSL是一种流行的加密技术,可以保护用户通过互联网传输的隐私信息.网站采用此加密技术后,第三方无法读取你与该网站之间的任何通讯信息.在后台,通过SSL加密的数据只有接收者才能解密. SSL最早在1994年由网景推出,1990年代以来已经被所有主流浏览器采纳. 什么是"心脏出血"漏洞? SSL标准包含一个心跳选项,允许SSL连接一端的电脑发出一条简短的信息,确认另一端的电脑仍然在线,并获取反馈.研究人员发现,可以通过巧妙的手段发出恶意心跳信息,欺骗另一端的电脑泄露机密信息
-
Python字符串格式化
在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出.Python中内置有对字符串进行格式化的操作%. 模板 格式化字符串时,Python使用一个字符串作为模板.模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式.Python用一个tuple将多个值传递给模板,每个值对应一个格式符. 比如下面的例子: 复制代码 代码如下: print("I'm %s. I'm %d year old" % ('Vamei', 99)) 上面的例
-
Python实现简单截取中文字符串的方法
本文实例讲述了Python实现简单截取中文字符串的方法.分享给大家供大家参考.具体如下: web应用难免会截取字符串的需求,Python中截取英文很容易: >>> s = 'abce' >>> s[0:3] 'abc' 但是截取utf-8的中文机会截取一半导致一些不是乱码的乱码.其实utf8截取很简单,这里记下来作为备忘 #-*- coding:utf8 -*- s = u'中文截取' s.decode('utf8')[0:3].encode('utf8') # 结果u
-
python获取mp3文件信息的方法
本文实例讲述了python获取mp3文件信息的方法.分享给大家供大家参考.具体如下: 将代码生成.py文件放在目录下运行,可以获取该目录的所有mp3文件的信息,需要使用ID3库 import os, sys from ID3 import * files = os.listdir(os.getcwd()) for f in files: x = os.path.splitext(f) if x[1] == '.mp3': n = x[0].split(' - ') author = n[0] t
-
python简单实现基于SSL的IRC bot实例
本文实例讲述了python简单实现基于SSL的 IRC bot.分享给大家供大家参考.具体如下: #!/usr/bin/python # -*- coding: utf8 -*- import socket, string, time, ssl import urllib, re network = 'irc.server.net' nick = 'nickname' chan = 'bot' port = 6697 socket = socket.socket(socket.AF_INET,s
-
Python简单实现图片转字符画的实例项目
1. 原理 利用 PIL 库来获取图片并修改大小, 利用灰度值转换公式把每一个像素的 RGB 值转为灰度值 gray = int(0.2126*r+0.7152*g+0.0722*b) 再从字符集里获取对应的字符 asciis = list('M%$@#&WNBRwm8S5A4E3KXFPH69nsxeazgpqbdoctfhkyvuGZYVTUCI2QOD0L7Jjl1ri!^{}[]()/|;:*<>_~-,. ') 最后将字符连接起来并保存就完成了 2. 开始制作 2.1 导入所
-
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
本文实例讲述了Python简单检测文本类型的方法.分享给大家供大家参考,具体如下: 1.根据文件头. #是否为带BOM头的UTF8文件 def IsUtf8BomFile(pathfile): if b'\xef\xbb\xbf' == open(pathfile, mode='rb').read(3)): return True return False 2.用cchardet库. >>> import cchardet >>> cchardet.detect(ope
-
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
本文实例讲述了Python简单获取网卡名称及其IP地址的方法.分享给大家供大家参考,具体如下: windows上想知道网卡和IP地址,可以使用ipconfig命令,在linux上可以使用ifconfig命令,得到输出后,可以解析输出内容,我要介绍的方法更为简单,只需要安装一个名为psutil的第三方库即可 # -*- coding: utf-8 -*- #! python2 import psutil #获取网卡名称和其ip地址,不包括回环 def get_netcard(): netcard_
-
Python编程之基于概率论的分类方法:朴素贝叶斯
概率论啊概率论,差不多忘完了. 基于概率论的分类方法:朴素贝叶斯 1. 概述 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.本章首先介绍贝叶斯分类算法的基础--贝叶斯定理.最后,我们通过实例来讨论贝叶斯分类的中最简单的一种: 朴素贝叶斯分类. 2. 贝叶斯理论 & 条件概率 2.1 贝叶斯理论 我们现在有一个数据集,它由两类数据组成,数据分布如下图所示: 我们现在用 p1(x,y) 表示数据点 (x,y) 属于类别 1(图中用圆点表示的类别)的概率,用 p2(
-
基于Python 装饰器装饰类中的方法实例
title: Python 装饰器装饰类中的方法 comments: true date: 2017-04-17 20:44:31 tags: ['Python', 'Decorate'] category: ['Python'] --- 目前在中文网上能搜索到的绝大部分关于装饰器的教程,都在讲如何装饰一个普通的函数.本文介绍如何使用Python的装饰器装饰一个类的方法,同时在装饰器函数中调用类里面的其他方法.本文以捕获一个方法的异常为例来进行说明. 有一个类Test, 它的结构如下: clas
-
Python简单计算文件MD5值的方法示例
本文实例讲述了Python简单计算文件MD5值的方法.分享给大家供大家参考,具体如下: 一 代码 import sys import hashlib import os.path filename = sys.argv[1] if os.path.isfile(filename): fp=open(filename,'rb') contents=fp.read() fp.close() print(hashlib.md5(contents).hexdigest()) else: print('f
-
Python网络编程基于多线程实现多用户全双工聊天功能示例
本文实例讲述了Python网络编程基于多线程实现多用户全双工聊天功能.分享给大家供大家参考,具体如下: 在前面一篇<Python网络编程使用select实现socket全双工异步通信功能>中,我们实现了1对1的异步通信,在文章结尾,给出了多对多通信的思路. 既然说了,咱就动手试一试,本次用的是多线程来实现,正好练练手- 首先讲一下思路: 我们将服务器做为中转站来处理信息,一方面与客户端互动,另一方面进行消息转发. 大体思路确定下来后,需要确定一些通信规则: 1. 客户端与服务器建立连接后,需要
-
详解Selenium+PhantomJS+python简单实现爬虫的功能
Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver) selenium2支持通过驱动无界面浏览器(HtmlUnit,PhantomJs) 二.安装 Windows 第一种方法是:下载源码安装,下载地址(https://pypi.python.org/py
随机推荐
- 七个绝招应对网上银行盗贼
- fromCharCode和charCodeAt 方法
- notepad、editplus等软件常用的文本整理正则表达式
- 在ASP.NET中重写URL的代码
- 页面间隔半秒钟更新时间 Asp.net使用Comet开发http长连接示例分享
- Asp.net的服务器推技术 (Server Push)
- Yii2实现跨mysql数据库关联查询排序功能代码
- C++基础教程之指针拷贝详解
- 你的jquery ajax无效和你的jquery引入路径有关
- php中随机显示图片的函数代码
- 微信小程序 数据绑定详解及实例
- 用DNSPod和Squid打造自己的CDN (六) 编译并安装Squid
- 编写自己的jQuery提示框(Tip)插件
- 使用java实现LIS算法,出操队形的问题
- JS无法捕获滚动条上的mouse up事件的原因猜想
- iis下php mail函数的sendmail配置方法(官方推荐)
- Java爬虫实现爬取京东上的手机搜索页面 HttpCliient+Jsoup
- vue2.0 datepicker使用方法
- vue中引用阿里字体图标的方法
- Python使用itchat 功能分析微信好友性别和位置