Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: choosing random dynamic port number

Reply
Thread Tools

Re: choosing random dynamic port number

 
 
Fredrik Lundh
Guest
Posts: n/a
 
      01-03-2008
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>

 
Reply With Quote
 
 
 
 
Giampaolo Rodola'
Guest
Posts: n/a
 
      01-04-2008
On 3 Gen, 23:21, Fredrik Lundh <fred...@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)
 
Reply With Quote
 
 
 
 
Grant Edwards
Guest
Posts: n/a
 
      01-04-2008
On 2008-01-04, Giampaolo Rodola' <> wrote:

>> * * 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:


The port number chosen isn't random on many OSes. If the OP
really wants a random port number, he'll have to generate it
himself.

--
Grant Edwards grante Yow! Look! A ladder!
at Maybe it leads to heaven,
visi.com or a sandwich!
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Math.random() and Math.round(Math.random()) and Math.floor(Math.random()*2) VK Javascript 15 05-02-2010 03:43 PM
How do I get a random number between two random numbers? Alex Untitled Ruby 11 11-16-2009 09:45 AM
random.random(), random not defined!? globalrev Python 4 04-20-2008 08:12 AM
My random number is only random for the first run??? xeys_00 C++ 12 04-11-2005 03:58 PM
choosing random item from set with weighted probability Digital Puer Java 5 11-29-2004 05:57 AM



Advertisments