network protocols

Christian Heimes lists at cheimes.de
Wed Jun 13 10:56:12 EDT 2012


Am 13.06.2012 13:41, schrieb Tarek Ziadé:
> Hey
>> I was surprised not to find any way to list all protocol names listed in
> /etc/protocols in Python
>> We have
>> socket.getprotobyname(NAME)
>> But there's no way to get the list of names
>> Any ideas if this is available in the stdlib somehwere ?

No, I can't find any reference to the relevant NSS APIs in the Python
code. You can easily roll your own with ctypes:
from ctypes import *
libc = CDLL("libc.so.6")
class protoent(Structure):
 _fields_ = [("p_name", c_char_p),
 ("p_aliases", POINTER(c_char_p)),
 ("p_proto", c_int)]
libc.getprotoent.restype = POINTER(protoent)
# open database
libc.setprotoent(0)
while True:
 pr = libc.getprotoent()
 if not pr:
 break
 r = pr[0]
 print r.p_name, r.p_proto
# close database
libc.endprotoent()


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /