>Without further ado, the questions: > > * getfqdn(): The module docs specify that if no FQDN can be found, >socket.getfqdn() should return the hostname as returned by >gethostname(). However, CPython seems to return the passed-in hostname >rather than the local machine's hostname (as would be expected from >gethostname()). What's the correct behavior? >>>> s.getfqdn(' asdlfk asdfsadf ') >'asdlfk asdfsadf' ># expected 'mybox.mydomain.com'
I would suggest the documentation is wrong and the CPython code is right in this case: if you supply the optional /name/ argument, then you don't want it returning your own name (but returning gethostname() is desirable if no /name/ is supplied). > * getfqdn(): The function seems to not always return the FQDN. For >example, if I run the following code from 'mybox.mydomain.com', I get >strange output. Does getfqdn() remove the common domain between my >hostname and the one that I'm looking up? >>>> socket.getfqdn('otherbox') >'OTHERBOX' ># expected 'otherbox.mydomain.com' getfqdn() calls the system library gethostbyaddr(), and searches the result for the first name that contains '.' or if no name contains dot, it returns the canonical name (as defined by gethostbyaddr() and the system host name resolver libraries (hosts file, DNS, NMB)). > * getprotobyname(): Only a few protocols seem to be supported. Why? >>>> for p in [a[8:] for a in dir(socket) if a.startswith('IPPROTO_')]: >... try: >... print p, >... print socket.getprotobyname(p) >... except socket.error: >... print "(not handled)" >... getprotobyname() looks up the /etc/protocols file (on a unix system - I don't know about windows), whereas the socket.IPPROTO_* constants are populated from the #defines in netinet/in.h at compile time. Personally, I think /etc/protocols and the associated library functions are a historical mistake (getprotobynumber() is marginally useful - but python doesn't expose it!). -- Andrew McNamara, Senior Developer, Object Craft http://www.object-craft.com.au/ _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com