美文网首页
2022-04-07 如何用Python 获取外网地址并发邮件

2022-04-07 如何用Python 获取外网地址并发邮件

作者: lishocking | 来源:发表于2022-04-07 09:35 被阅读0次

    Python 获取外网地址,有的说用bs4爬取138,有的说读取自己路由器网页地址。这两个方法都行就是工作量太大还麻烦。就想起自己以前学习NAT打洞的时候有个协议叫stun。

    NAT会话穿越应用程序STUN(Session Traversal Utilities for NAT)是一种由RFC定义的网络协议,用于检测网络中是否存在NAT设备,并获取两个通信端点经NAT设备分配的IP地址和端口号。然后在两个通信端点之间建立一条可穿越NAT的P2P链接,实现P2P通信,这一过程也被形象的称为“打洞”。STUN无需现有NAT设备做任何改动,只需在组网中部署一台STUN服务器,操作起来比较简单,因此得到广泛应用。

    STUN是标准协议,网上有很多服务器。python 的stun 叫pystun 有个更简单的应用叫pynat
    只需要 pip install pynat

    from pynat import get_ip_info
    topology, ext_ip, ext_port = get_ip_info()
    ipv4=ext_ip
    

    获取IPv6 global 直接读网卡ifconfig并正则表达式匹配就好了

    
    import IPy
    import smtplib
    
    def getIPv6Address():
        output=os.popen("ifconfig").read()
        #output=open("ip5.txt").read()
        for i in output.split("\n"):
            if re.match("\s*inet6 addr:\s*(([a-f0-9]{0,4}:){0,7}[a-f0-9]{1,4}).*Global",i):
                ip=re.findall("inet6 addr:\s*(([a-f0-9]{0,4}:){0,7}[a-f0-9]{1,4}).*Global",i)
                try:
                    IPy.IP(ip[0][0])
                    return ip[0][0]
                except:
                    continue
        return ""
    
    ipv6=getIPv6Address()
    

    发邮件使用smtp是可以匿名投递的,就跟现实中的邮箱一样你可以直接投递。、
    主要问题是反垃圾邮件的SPF检查。MSG可以直接用文字ASC嘛不用多媒体格式就直接用字符串就好了
    msg主要就是会不合法,被反垃圾邮件拦下来。目前还没找到拦下来的原因。

    import mimetypes
    
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    from email.mime.base import MIMEBase
    from email import encoders
    from email.message import EmailMessage
    
    msg='To:xxx@qq.com'+'\r\n'+\
    'From:xxx@xxx.com.cn'+'\r\n'+\
    'Subject:NAS-IP\r\n\r\nip4x'+ipv4+"\nip6x"+ipv6+"\r\n\r\n"
    server = smtplib.SMTP(host="mail.qq.com",port=25)
    server.ehlo(name="xxx.com.cn")#告诉服务器你是谁
    server.sendmail("xxx@xxx.com.cn", "xxx@qq.com", msg)
    

    相关文章

      网友评论

          本文标题:2022-04-07 如何用Python 获取外网地址并发邮件

          本文链接:https://www.haomeiwen.com/subject/nzejsrtx.html