2007年01月04日 星期四 14:04
FTP协议中有pasv, port等命令,需要得到本地的IP地址,但是socket.getsockname好像不合适,因为: sock = socket.socket() sock.bind(("0.0.0.0", 12345)) sock.listen(5) ... (ip, port) = sock.getsockname() # 总是得到("0.0.0.0", 12345),和C库的表现不大一样
2007年01月04日 星期四 14:13
不知你在什么系统之下。 我曾经在Linux2.6下测试,发现在0.0.0.0监听时,获取的sock.getsockname()的返回值是与客户端相关的。如果客户端连接127.0.0.1,则返回也是这个段的,直接连接IP地址等等,都是不同的。 -- 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就.. 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。 我愿为那一刻的温暖去拼,可是谁愿意接受? 欢迎访问偶的博客: http://blog.csdn.net/gashero
2007年01月04日 星期四 14:34
多谢 在连接建立起来以后sock.getsockname()是有用的;不过在FTP的这种情况中,连接还未建立,正是需要获取这些信息来建立连接。 我的系统是redhat 7.3,python 2.5
2007年01月04日 星期四 14:38
我问个问题,python里面如何获取本机的外部IP地址? 主要是为了加入组播组的时候,获取到这个IP地址,以使自己加入组播组。 我以前的做法都是系统调用“ifconfig”,然后从里面取出IP地址段。 有没有直接的python类或者方法可以获取到? -------------------------------------------------- Liu Xing Development Dept.I Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST) 8/F., Civil Defense Building, No.189 Guangzhou Road, Nanjing, 210029, China TEL: +86+25-86630566-836 COINS: 79955-836 FAX: +86+25-83317685 MAIL: liuxing在nanjing-fnst.com -------------------------------------------------- ----- Original Message ----- From: "cafeeee" <cafeeee在gmail.com> To: <python-chinese在lists.python.cn> Sent: Thursday, January 04, 2007 2:34 PM Subject: Re: [python-chinese] socket问题 > 多谢 > > 在连接建立起来以后sock.getsockname()是有用的;不过在FTP的这种情况中,连接还未建立,正是需要获取这些信息来建立连接。 > > 我的系统是redhat 7.3,python 2.5 > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese >
2007年01月04日 星期四 15:01
一片混乱。这样,我给你指一个思路,自己考虑一下。没听懂你想要获得什么。 一个服务器建立的时候需要有一个socket,这个socket用于监听,而不是用于传输输出。而连接建立时,会从这个socket的accept方法获得另外一个socket,这个是用于传输数据的。这两个socket各有各的用途。同时有都有getsockname()方法。你可以分别调用他们试试。 我第一封回信里提到的不同实际上是指建立连接用于传输数据那个socket的getsockname方法的返回值。 -- 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就.. 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。 我愿为那一刻的温暖去拼,可是谁愿意接受? 欢迎访问偶的博客: http://blog.csdn.net/gashero
2007年01月04日 星期四 16:09
不好意思,没说清楚。 FTP协议中有控制连接和数据连接两个TCP连接,在PASV命令中,FTP服务程序需要监听某一个端口(用于建立数据连接)并把自己的IP地址和监听的端口号通过控制连接发送给客户程序(以便客户程序连接进来),这个时候就需要在建立(数据)连接前得到本地的IP地址。 刚刚想到了解决方法:由于此时控制连接已经建立,可以使用通过控制连接的socket得到本地的IP地址:) 多谢多谢 不过还是很想知道,怎么样在不建立连接的情况下得到本地的IP地址,或者说,得到本地IP的最简单的方法。 On 1/4/07, gashero <harry.python在gmail.com> wrote: > 一片混乱。这样,我给你指一个思路,自己考虑一下。没听懂你想要获得什么。 > 一个服务器建立的时候需要有一个socket,这个socket用于监听,而不是用于传输输出。而连接建立时,会从这个socket的accept方法获得另外一个socket,这个是用于传输数据的。这两个socket各有各的用途。同时有都有getsockname()方法。你可以分别调用他们试试。 > 我第一封回信里提到的不同实际上是指建立连接用于传输数据那个socket的getsockname方法的返回值。 >
2007年01月04日 星期四 16:43
On 1/4/07, cafeeee <cafeeee在gmail.com> wrote: > 不好意思,没说清楚。 > > FTP协议中有控制连接和数据连接两个TCP连接,在PASV命令中,FTP服务程序需要监听某一个端口(用于建立数据连接)并把自己的IP地址和监听的端口号通过控制连接发送给客户程序(以便客户程序连接进来),这个时候就需要在建立(数据)连接前得到本地的IP地址。 > > 刚刚想到了解决方法:由于此时控制连接已经建立,可以使用通过控制连接的socket得到本地的IP地址:) > > 多谢多谢 > > 不过还是很想知道,怎么样在不建立连接的情况下得到本地的IP地址,或者说,得到本地IP的最简单的方法。 > 一台机器可能有许多IP,所以具体用哪个还是要看与哪个服务器连接。直接得到本机的IP其实可能会得到多个IP。 -- I like python! UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad My Blog: http://www.donews.net/limodou
2007年01月04日 星期四 17:17
哦,不好意思,我以前还不懂PASV模式。刚刚看了一下,确实有很大难度。如果你的FTP在NAT后面,那么就像刘星说得那样,如何获取外网IP才是要点。否则,发了自己的内网IP,对方肯定会出毛病了。 可以试试让FTP服务器启动时连接一些查IP的网站,他们会在页面上显示自己的外网IP,然后自己解析出来。 如果你想到了用什么更好的办法获得内网NAT中的FTP获取外网IP的办法,麻烦告诉我一下,谢谢。 -- 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就.. 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。 我愿为那一刻的温暖去拼,可是谁愿意接受? 欢迎访问偶的博客: http://blog.csdn.net/gashero
2007年01月05日 星期五 10:18
python-chinese£¬ÄãºÃ Èç¹ûÔÚnatºóÃ棬һ°ãÓÃpasvÓÐÄѶȣ¬ÒòΪ»¹ÐèÒªÔÚnatÉ豸ÉÏ×÷nat¶Ë¿ÚÓ³Éä¡£ nmweizi£¬nmweizi在163.com 2007-01-05 ----- Original Message ----- From: gashero To: python-chinese Sent: 2007-01-04, 17:17:02 Subject: Re: [python-chinese] socketÎÊÌâ Ŷ£¬²»ºÃÒâ˼£¬ÎÒÒÔÇ°»¹²»¶®PASVģʽ¡£¸Õ¸Õ¿´ÁËһϣ¬È·ÊµÓкܴóÄѶȡ£Èç¹ûÄãµÄFTPÔÚNATºóÃ棬ÄÇô¾ÍÏñÁõÐÇ˵µÃÄÇÑù£¬ÈçºÎ»ñÈ¡ÍâÍøIP²ÅÊÇÒªµã¡£·ñÔò£¬·¢ÁË×Ô¼ºµÄÄÚÍøIP£¬¶Ô·½¿Ï¶¨»á³ö벡ÁË¡£ ¿ÉÒÔÊÔÊÔÈÃFTP·þÎñÆ÷Æô¶¯Ê±Á¬½ÓһЩ²éIPµÄÍøÕ¾£¬ËûÃÇ»áÔÚÒ³ÃæÉÏÏÔʾ×Ô¼ºµÄÍâÍøIP£¬È»ºó×Ô¼º½âÎö³öÀ´¡£ Èç¹ûÄãÏëµ½ÁËÓÃʲô¸üºÃµÄ°ì·¨»ñµÃÄÚÍøNATÖеÄFTP»ñÈ¡ÍâÍøIPµÄ°ì·¨£¬Âé·³¸æËßÎÒһϣ¬Ð»Ð»¡£ -- ´ÓÇ°ÓÐÒ»Ö»ºÜÀäµÄëë³æ£¬ËûÏë»ñµÃÒ»µãÎÂů¡£¶ø»ñµÃÎÂůµÄ»ú»áÖ»ÓдÓÊ÷ÉϵôÏÂÀ´£¬Âä½ø±ðÈ˵ÄÁì¿Ú¡£ Ƭ¿ÌµÄÎÂů£¬Ö®ºó±ãʧȥÉúÃü¡£¶øºÜ¶àͬÀàÈ´Á¬ÕâƬ¿ÌµÄÎÂů¶¼Ã»Óеõ½¾Í.. ÎÒ»áµÃµ½ÎÂůô£¿Ð¡ÐÄÒíÒíµÄ³¢ÊÔ£¬È´»¹ÊÇ»áÊܵ½É˺¦¡£ ÎÒԸΪÄÇÒ»¿ÌµÄÎÂůȥƴ£¬¿ÉÊÇËÔ¸Òâ½ÓÊÜ? »¶Ó·ÃÎÊżµÄ²©¿Í£º http://blog.csdn.net/gashero _______________________________________________ python-chinese Post: send python-chinese在lists.python.cn Subscribe: send subscribe to python-chinese-request在lists.python.cn Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn Detail Info: http://python.cn/mailman/listinfo/python-chinese -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070105/7cde82a5/attachment.html
Zeuux © 2025
京ICP备05028076号