I was able to deal with public IP.
In case anyone wants to know:
public List<string> GetExternalNetworkNames(vCloudClient vcloudClient, ReferenceType orgRef)
{
List<string> externalNetworkNames = new List<string>();
List<ReferenceType> networkRefs = Organization.GetOrganizationByReference(vcloudClient, orgRef).GetNetworkRefs();
string fenceMode = null;
OrgNetwork orgNetwork = null;
foreach (ReferenceType networkRef in networkRefs)
{
orgNetwork = OrgNetwork.GetOrgNetworkByReference(vcloudClient, networkRef);
fenceMode = orgNetwork.Resource.Configuration.FenceMode;
if (fenceMode.Equals("bridged"))
{
externalNetworkNames.Add(orgNetwork.Resource.name);
}
}
return externalNetworkNames;
}
Then
// Begin, Get external (public IP) only
usage.IP = 0;
foreach(NetworkConnectionType networkConnection in vm.GetNetworkConnections())
{
if(externalNetworkNames.Contains(networkConnection.network))
{
++ usage.IP;
}
}
// End, Get external (public IP) only