Expand my Community achievements bar.

Join us for an upcoming in-person Adobe Target Skill Builders event ~~> We're hosting these live learning opportunities to equip you with the knowledge and skills to leverage Target successfully. Learn more to see if we'll be coming to a city near you!
SOLVED

## Profile Script for IP range

Level 2

Hello,

We are creating an experience where our success metric is time on site.  We have content authors who spend a lot of time on the site reviewing articles and making edits.  We would like to block our content authors from being included into the campaign so the results are not screwed.  My thought was to create a profile script to determine IP address.  We would then use this script to create an audience that targets everyone but those ranges  Could someone please comment on how to set this up?

Thanks for any assistance.

1 Accepted Solution

Level 10

Hi ,

We have to change the syntax a bit. Please use the following code :

var res = /^(192.236.17.44)\$/.test(strIp);

if (res)
{
return "Invalid IP";
}
else
{
return "Valid IP";
}

Please let us know if you have any more queries.

Thanks & Regards

Parit Mittal

14 Replies

Level 10

Hi ,

You can access the IP address of visitor using user.header('x-cluster-client-ip’) in a  profile script. Please see the below profile script code:

2.
3. var res = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\$/.test(strIp);
4.
5. if (res)
6. {
7. return "Valid IP";
8. }
9. else
10. {
11. return "Invalid IP";
12. }

The above code checks whether an IP address is a valid IP address or not on the basis of Regular Expression defined in the script and then returns the Valid or Invalid Ip . In your case , you can create a Regular Expression on the basis of your requirements and then check if the visitor ip address is a valid one or not.

After All the Set up , You can create an Audience named as "Valid Audience" and add "Visitor Profile" as a rule and then choose the  above created profile script name as the refinement.

Please let us know in case of any more questions or queries.

Thanks & Regards

Parit Mittal

Level 2

So in Target Standard, what would be the next step for blocking the IP address of: 192.236.17.44?

I know I need to create an audience using this profile script but in the dropdown I am not sure what you would choose.  Equals, Contains, Parameter is preset... etc.

Level 10

Hi,

If you already know the Ip Address that need to be blocked then , You just have to update the profile script like this :

2.
3. var res = "192.236.17.44";
4.
5. if (res!=strlp)
6. {
7. return "Valid IP";
8. }
9. else
10. {
11. return "Invalid IP";
12. }

and create an Audience like below :

Thanks & Regards

Parit Mittal

Level 2

Says that that the syntax is invalid.  Will not publish to adobe delivery network.

Level 10

Hi ,

We have to change the syntax a bit. Please use the following code :

var res = /^(192.236.17.44)\$/.test(strIp);

if (res)
{
return "Invalid IP";
}
else
{
return "Valid IP";
}

Please let us know if you have any more queries.

Thanks & Regards

Parit Mittal

Level 1

Hi Parit, How can you manipulate this scrip to add ranges of IP addresses?

Level 2

Hi Parit,

Can you explain this code. Specially /^(192.236.17.44)\$/.test(strIp); part so that I can modify it to enter multiple IP addresses. I am finding it difficult to comprehend this code.

Thanks,

Suchindra Kala

Level 1

I've used this in the past for multiple IP addresses:

You can put in ranges or single IPs. Be careful though, if you enter too many, the script breaks with no warning as Target has limits on the length of profile scripts but for some reason it doesn't tell you the limit on save (unless this has changed recently).

Level 1

I just had to go through this exercise...see below:

/^(192.236.17.44|192.168.1.1|192.168.5.2)\$/.test(strIp);

Separate it by a pipe as an OR statement.

Level 1

I don't get it working in Adobe target standard.

Is it normal that in the available tokens I don't see user.header?

My audience based on this script doesn't work...

Level 1

Here is how mine is set up (bluring out IP's)

I create my audience by saying Visitor Profile; user.isInIpRange contains "webRange" where isInIpRange is the Profile Script and webRange is the value that would be returned in the script.

Level 1

Thanks, but this doesn't work...

Level 1

Thanks, everyone for this great info! How do I mention multiple ranges of IPs in the following code?

var res = /^(192.236.17.44)\$/.test(strIp);

Can anyone please explain by mentioning 2-3 dummy IP range.

Level 5

Multiple full IPs would be
var res = /^(192.236.17.44)\$|^(192.236.17.45)\$|
^(192.236.17.46)\$/.test(strIp);

If you just want to match "starts with" you can drop the "\$" at the end

var res = /^(192.236)|^(192.237)|^(192.238)\$/.test(strIp);