choosing random dynamic port number
Giampaolo Rodola'
gnewsg at gmail.com
Fri Jan 4 06:25:28 EST 2008
On 3 Gen, 23:21, Fredrik Lundh <fred... at pythonware.com> wrote:
> Emin.shopper Martinian.shopper wrote:
> > Is there a good way to choose/assign random dynamic port numbers in python?
>
> > I had in mind something like the following, but if multiple programs are
> > generating random port numbers, is there a way to check if a given port
> > number is already taken?
>
> > def GenerateDynamicPortNumber():
> > "Generate a random dynamic port number and return it."
> > # port numbers between 49152 to 65535 are dynamic port numbers
> > return 49152 + random.randrange(15000)
>
> def GenerateDynamicPortNumber():
> return 0
>
> (to get the actual number, use getsockname() on the socket after you've
> called "bind" on it)
>
> </F>
By using 0 as port number value you let kernel choose a free
unprivileged random port:
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> s.bind(('', 0))
>>> s.getsockname()
('0.0.0.0', 3070)
More information about the Python-list
mailing list