If you want to use nslookup from Powershell, you will have to process the returned result as it is just text.
Instead, use Resolve-DnsName Powershell cmdLet.
Note that the command will return all DNS records, so the result can be an array of objects.
Here is a small example on how you can use it (I replaced your foreach loop with for):
for($i=1 ; $i -le 255 ;...
Business class internet service should be providing a static IPv6 prefix. The address space is easily big enough to provide this for everyone.
DNS is the first choice for resolving names to IPs. Consider a DNS updating script, running on a box that knows the prefix. nsupdate, ddclient, something like that. A script to drive that is fairly simple: concatenate ...