美文网首页
简易ftp server搭建----获取主机IP地址

简易ftp server搭建----获取主机IP地址

作者: Leng__ | 来源:发表于2017-12-05 13:37 被阅读0次

    学习了基本的socket编程之后, 想要自己搭建一个ftp用于电脑之间的文件传输. 在尝试阅读RFC959协议被虐之后, 只能拿大神们的轮子来用, 就是这个东东pyftpdlib.


    基本代码直接参考pyftpdlib文档即可, 在搭建过程中,遇到了一个小坑

    关于主机IP地址的获取

    方法一

    import socket
    def host_ip():
        ip = socket.gethostbyname(socket.gethostname())
        return ip
    

    这个方法在mac上没有问题(mac貌似直接用gethostname()即可), 但是在win上(win10), 获取到的ip地址却是虚拟机的(ipconfig命令确认)

    方法二

    各种搜索之后, 找到了一个比较好的方法

    def host_ip():
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            s.connect(('8.8.8.8', 6437))
            ip = s.getsockname()[0]
        finally:
            s.close()
    
        return ip
    

    该方法生成一个UDP包, 尝试发包, 然后从中获取主机的IP地址. 没有其他依赖~~
    (该方法参考来源: 东东东 陈煜东的博客)

    相关文章

      网友评论

          本文标题:简易ftp server搭建----获取主机IP地址

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