I am trying to create a report based on IP address ranges within ITA. The problem is that I have multiple data centers with multiple IP address ranges. I have tried to call custom VB code in my ITA report, but ITA seems to struggle with calling the code. What I would ultimately like to do is create something that defines the different IP ranges within the report then compare the IP address in the Alerts table for SEP. Does any one have a similar solution or a way of doing the comparison of IP addresses to deteremine if the IP is within a range? I have tried to add custom code to the report but when I call the custom code, the report fails.
Here is the Custom Code:
Public Function ip2num(ip As String) As String
Dim i, a, N
a = Split(ip, ".")
N = CDbl(0)
For i = 0 To UBound(a)
N = N * 256 + a(i)
Next
ip2num = N
IIf ((ip2num(ip)>= ip2num("10.0.1.0") And ip2num(ip) <= ip2num("10.0.6.255")),ip2num=ip,ip2num="")
End Function
What I would like to do is add an OR statement to have the multiple values for the one datacenter and include that as part of the IIF statement, but it does not seem to be working. I try calling it as a separate Dataset:
WITH MEMBER [Measures].[ParameterCaption] AS 'IIF([Computer].[Computer - IP Address].CURRENTMEMBER.MEMBER_CAPTION=null, "(Blank)", [Computer].[Computer - IP Address].CURRENTMEMBER.MEMBER_CAPTION)'
MEMBER [Measures].[ParameterValue] AS '[Computer].[Computer - IP Address].CURRENTMEMBER.UNIQUENAME'
MEMBER [Measures].[ParameterLevel] AS '[Computer].[Computer - IP Address].CURRENTMEMBER.LEVEL.ORDINAL'
SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue],
[Measures].[ParameterLevel]} ON COLUMNS ,
[Computer].[Computer - IP Address].ALLMEMBERS ON ROWS
FROM ( SELECT (Code.ip2num([Computer].[Computer - IP Address].Value)) ON ROWS
FROM [SEP Alerts])
When I run this I get Query (x,x) Axis numbers specified in a query must be sequentially specified, and cannot contain gaps.
Thoughts? Possibly a different way to report based on set of IP ranges?
Thanks!