• 0

[Powershell] Generate Random IP's


Question

function RandomIPv4 {
    [IPAddress]::Parse([String] (Get-Random) )
}

I am trying to learn powershell at the moment, The reason isn't too important at this stage but anyone who is familiar with Powershell tell me if this will generate a random IP address and how could I use it in a function of sorts? 

Link to comment
https://www.neowin.net/forum/topic/1229005-powershell-generate-random-ips/
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Yes, it does generate a random IP, although if that's the only data you want (and not the whole IP address object) you may want to narrow the return result a tad, that's up to you and your needs, just tossing that option if it comes up. Calling it is pretty easy, such as:

 

function RandomIPv4 {
return [IPAddress]::Parse([String] (Get-Random) ).IPAddressToString
}

Write-Output (RandomIPv4)
If you return the whole object, you get something like this, removing the actual return value:

 

Address : ########
AddressFamily : InterNetwork
ScopeId :
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : False
IsIPv6Teredo : False
IsIPv4MappedToIPv6 : False
IPAddressToString : ###.###.###.###
And you could pick out the string version this way:

function RandomIPv4 {
return [IPAddress]::Parse([String] (Get-Random) )
}
Write-Output (RandomIPv4).IPAddressToString
Like I said, depends on what you're doing with it.
  • 0

Wow! Thanks thats great. I really want to get into Powershell so I am throwing some ideas round to learn bits and bobs. I want to say print them to an Excel Spreadsheet, Ping them, Check them for services write it to a spreadsheet etc.

  • 0
  On 09/09/2014 at 14:39, ChuckFinley said:

Wow! Thanks thats great. I really want to get into Powershell so I am throwing some ideas round to learn bits and bobs. I want to say print them to an Excel Spreadsheet, Ping them, Check them for services write it to a spreadsheet etc.

No problem -- PowerShell is absurdly good (my favorite shell by far) once you get the hang of it, crazy flexible.
  • 0

I might tap you for more information then :-p

 

So say for example I am going to write a program that would loop round, generate 50 random IP's ping them and output the results to a spreadsheet using 

 

http://technet.microsoft.com/en-us/library/ee176825.aspx

 

.....

  • 0

This is just off the top of my head, seems to work, you'll obviously want to edit it to suit your needs, change where it's being saved (got it going to your desktop at the moment), etc etc, but:

 

function RandomIPv4 {
    return [IPAddress]::Parse([String] (Get-Random) ).IPAddressToString
}

function RandomIPv4AddressList {
    $IPArray = @()
    for($Counter = 1 
        $Counter -le 50
        $Counter ++)
        {
            $IPObject = New-Object PSObject
            $IPObject | Add-Member -MemberType NoteProperty -Name "IP Address" -Value (RandomIPv4)
            $IPArray += $IPObject
        } 
        Return ($IPArray)
}

$OutputFileName = $Env:UserProfile + "\Desktop\IPAddressList.csv"
Write-Output(RandomIPV4AddressList) | Export-Csv $OutputFileName -NoTypeInformation  
The new function returns an array that Export-Csv can cleanly deal with and export.

For pinging you can use "Test-Connection", call that and add the result as another member in the IPArray object. Need to jet shortly for a client, if you still need help with it later I can expand on it this afternoon.

http://technet.microsoft.com/en-us/library/hh849808.aspx

  • 0
  On 09/09/2014 at 15:40, ChuckFinley said:

Wow thanks! What (if any) Powershell IDE do you recommend?

I don't do a ton of scripting myself so PowerShell ISE is plenty good enough for my needs. I do have a friend who is pretty fond of a program called "PowerShell Plus", never used it myself but looks interesting enough.
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.