• 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.
  • Posts

    • Windows 10 KB5063159 fixes bug that wouldn't let some Microsoft Surface devices boot by Sayan Sen Microsoft released Windows 10 Patch Tuesday updates for the month last week. The one for Windows 10 under KB5060533 / KB5060531 / KB5061010 / KB5060998 introduced a bug that would not let Surface Hub v1 devices start due to a Secure Boot validation issue. As such, Microsoft had paused the update similar to the compatibility blocks or safeguard holds it applies for major feature updates as well. This bug was uncovered after the update went live, as Microsoft later added it to the list of known issues for that update and it also put up a big notice in bold. It wrote: Earlier today, the company released an out-of-band (OOB) update to address the issue. It has been published under KB5063159 and is only being offered to Surface Hub v1 devices instead of the buggy KB5060533 Patch Tuesday one. In the description of the new OOB update, Microsoft writes: You can find the support article for KB5063159 here on Microsoft's website. It is downloaded and installed automatically but users can also manually download it from the Microsoft Update Catalog website.
    • I thought I saw that one, and yeah, it was awhile ago, too..
    • Jumping unicorns says that I forgot you. I never grunt.
    • Microsoft can't help break Windows Outlook as even opening an email now sends it crashing by Sayan Sen It is no surprise that right now, Microsoft's priority is to move users onto the New Outlook for Windows if they haven't done so already. The company began default-deployment of the new app on fresh Microsoft 365 systems and also made switching between the New app and the classic app easier. At the same time, the company is also trying to improve the new app as it recently added yet another feature that will allow people to use the app without an internet connection, and it also blocked more file types to improve security. Perhaps as a consequence of this relentless pursuit, the classic Outlook app has become quite prone to bugs and issues in recent times as Microsoft may be losing its focus. For example, in April, the downloads for Classic Outlook broke and more recently, this month, the tech giant confirmed that a major Calendar feature upgrade has broken the app in several different ways. Microsoft has provided workarounds for several of the issues so check this article out if you are having problems. And the bugs just keep on coming as Microsoft earlier today confirmed that opening emails or starting a new email will now crash the application, and it affects all channels. The company explains: Opening a mail on an email client is probably the most common and basic functionality a user is expected to do, so it is annoying to see such a bug not getting caught during testing. Again, this perhaps indicates that Microsoft's focus maybe elsewhere at the moment. The company has shared the Windows Event Viewer Log for the crash and the problematic OLMAPI32 DLL file is related to Microsoft Messaging Application Programming Interface (MAPI). The issue reminds us of the similar OLEAUT32 dll issue fix in our recent ReactOS article. The event viewer log notes: Faulting application name: OUTLOOK.EXE, version: 16.0.14334.20090, time stamp: 0x683fe030 Faulting module name: OLMAPI32.DLL, version: 16.0.14334.20090, time stamp: 0x683ff910 Exception code: 0xc0000409 Fault offset: 0x00196e1c Faulting process id: 0x9100 Faulting application start time: 0x01dbdbe04fe54514 Faulting application path: C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE Faulting module path: C:\Program Files (x86)\Microsoft Office\root\Office16\OLMAPI32.DLL Thankfully, Microsoft has issued a workaround for the problem as it currently investigates the bug by manually creating a FORMS2 folder which should exist at the following address: C:\Users\\AppData\Local\Microsoft\FORMS2. Microsoft explains: You can find the support article for the issue here on Microsoft's official website.
    • I have no issue with a service not being offered free. That's perfectly understandable. I do have issue with seeing ads literally everywhere these days, though, plastered in layers over every website and in every app. Especially with how annoying they tend to be (hell, many ads these days even promote literal scams). That's why people use ad blockers. Let me choose. Offer an ad-free experience for a couple of bucks (but be reasonable, don't get too greedy) or ads for free access. Don't make it ads or nothing.
  • Recent Achievements

    • Week One Done
      korostelev earned a badge
      Week One Done
    • Week One Done
      rozermack875 earned a badge
      Week One Done
    • Week One Done
      oneworldtechnologies earned a badge
      Week One Done
    • Veteran
      matthiew went up a rank
      Veteran
    • Enthusiast
      Motoman26 went up a rank
      Enthusiast
  • Popular Contributors

    1. 1
      +primortal
      688
    2. 2
      ATLien_0
      268
    3. 3
      Michael Scrip
      184
    4. 4
      +FloatingFatMan
      177
    5. 5
      Steven P.
      140
  • Tell a friend

    Love Neowin? Tell a friend!