What is good, MexitPlanners?
I recently purchased a subscription to ChatGpt and got reenergized to fully understand as much as I can about AI and how it can help me solve additional problems beyond saving time with content creation. As you know, this channel is all about solving the problems that Expats face while living abroad, whether those are technical problems, cultural problems, logistical problems, or otherwise. So today, we're diving into the fascinating world of Artificial intelligence and VPNs. Remember when I talked about VPN services and the IP addresses of known VPN servers in the previous video about the ultimate VPN Router Solution? In that video, I briefly demonstrated two websites with this information programmed into their code. Well, these two projects got me thinking:
1. How did they code this into their websites and
2. Could an IT security professional use ChatGPT to easily identify if a user is using a VPN server IP address, ?*
🚀 Join me as We Explore ChatGPT in 2023 and these interesting questions
Before we start, here's a little about me that you may not know: I’ve been a Network engineer and cybersecurity nerd for well over 20 years, and yes, I remember when the internet went mainstream in '94. I can remember asking my co-workers at a computer store that I worked at (Shoutout to Dave and James) if they had heard about this thing called the World Wide Web. Well, AI systems like ChatGPT are about to become part of our daily lives, just as Search and YouTube are today and I'm Super excited!
But my lack of knowledge in this area is what makes this blog post interesting. I am approaching this problem as a complete novice to modern programming and website creation. Therefore, if I can do this in a matter of hours with the help of AI, so can you.
The goal is to create a web page that will take the input of an IP address (think of the IP address as your home mailing address for your computer) and determine whether or not it’s in a list of known public VPN services IP networks.
To begin, let’s break the goal down into five simple steps:
1. Find the List of Known VPN Public Servers
2. Determine All Possible IP Addresses in the List of Networks
3. Compare the Input IP Address to the List of Known VPN Servers
4. Check if there's a Match
5. Show the Result
Ready to dive in? Here we go!
The first thing we need to do is find the list of known IP addresses for public VPN servers. So I started with a quick Google search to locate the list.
When I located the file I discovered that the file is listed by IP network blocks. This is super helpful but when you receive an IP address from a public VPN service provider that IP address will be of an endpoint server and not the network. For instance, the IP address might be 192.168.1.1 the network might be 192.168.0.0 with a subnet mask of 16.
So for the second step, we need to identify all the IP addresses in an available network to compare the endpoint IP address to the networks provided in the file and see if there is a match in step 3.
One of the most engaging aspects of working with AI like ChatGPT is how it feels like talking to a friend who knows how to code. The conversation starts with a prompt, and that's where the magic begins. Crafting a good prompt is crucial, as it's the foundation of effective communication with AI.
The Power of Personas in Prompting
Integrating personas into your prompt can make the AI respond in a specific manner that aligns with your project's needs. In this case, the persona of a software developer working for an IT firm added depth to the interaction, guiding the AI to respond in a more targeted way.
The original prompt I provided was:
Play the role of a software developer who works for an IT firm. You want to create a webpage to identify the IP address of known VPN servers. You have a file that lists all the known networks of VPN servers, but you need to compare a single IP address to each network to determine if that IP address is a part of one of the networks. What is the best way to compare a file with known networks to a single IP address?
By asking the AI to assume a specific persona, the response becomes more tailored and useful for the task at hand. It helps in creating a more engaging and human-like interaction.
The results were remarkable. Not only did ChatGPT understand the request, but it also provided a very usable version of code that only needed tweaking. This all happened in a matter of minutes, although it took several hours to tweak the code for the final version. The important lesson here is that with a well-crafted prompt and the inclusion of personas, the results will be drastically different, and the entire process becomes more streamlined.
This approach to prompts also led to a better understanding of various aspects of web development, including manipulating Wix, uploading files, referencing those files, and more. Again, I am not a web developer, but with AI, the right prompts, and using personas, I was given exact details on what to do. It's a perfect example of how the right questions can lead to the right answers, opening up a whole new world of possibilities and learning.
This is where things got really interesting. Not only did it understand the request but, it also provided a very usable version of code that only needed tweaking. This all happened in a matter of minutes. Now to be fair, it did take me several hours to tweak the code with additional prompts to get a good working version. But, the beauty of this is was once I had the framework it was easy to request additional changes.
The final piece is writing the code to compare the known networks to the IP address and show the result.
You can see a demonstration of the final code and the resulting program that was created to determine if the inputted IP address is one of a known VPN server in the video below.
So now let’s wrap this up.
Is It Perfect? No, it's a simple proof of concept. But it shows how easily public VPN servers can be detected using AI.
💬 Share Your Thoughts
Did you enjoy this blog post? Want more on AI and how it can help solve expat problems? Leave a comment below, or if you have questions about remote work without using a public VPN service, hit the link below 👇
🎤 Until Next Time,
MexitPlans Monte "I'm Out”