GeoLocation Lookup Application

 
Post new topic   Reply to topic    Aprelium Forum Index -> Off Topic Discussions
View previous topic :: View next topic  

Useful?
Yes
100%
 100%  [ 6 ]
No
0%
 0%  [ 0 ]
Total Votes : 6

Author Message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Thu Oct 14, 2021 11:44 am    Post subject: GeoLocation Lookup Application Reply with quote

Aprelium - I hope you don't mind me posting the following...

Hi Guys,

It's been a while!

I'm always checking for updates on the forum, feels like I have been on here for an eternity as it's the only forum I check on a regular basis!

Anyway, I have recently started a new job as an Infrastructure Engineer, mainly implementing and installing WatchGuard firewall devices (amongst other things). Our mindset once installed is to completely lockdown all traffic apart from allowing business essential traffic for the client.

If you are not aware, as part WatchGuard System Manager there is a Traffic Monitor component. Once installed and "locked down" I spend some time monitoring traffic coming in and out, searching websites to see the endpoint and creating rules on the firewall on a case by case scenario.

Some of this work involves checking IP Address Locations etc, no offense but we tend to block anything from Russia, North Korea and China; only allowing certain IP addresses absolutely required in these areas (we are UK based).

I got fed up, for want of a better phrase with having to go to websites in order to lookup IP addresses so created this application.

It allows me to have the WatchGuard Traffic Monitor open while easily checking IP addresses.

My aim is to have a bit of feedback from anyone willing to try it out if possible please?

No installation required, source code available on request. VB.NET project.

Download Link at bottom of post

Thanks in advance!




Download URL: https://www.dropbox.com/s/mr9o7wabu8si9p8/RY%20IP%20Geolocation%20Lookup.zip?dl=0
_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
pkSML
-


Joined: 29 May 2006
Posts: 952
Location: Michigan, USA

PostPosted: Sat Oct 16, 2021 12:00 am    Post subject: Reply with quote

Nice work! Definitely handy to have. Every server gets spammed and it's nice to know where it's coming from (Yes, Russia, I mean you... lol)

Perhaps you could add a checkbox that, when enabled, would automatically fill in the address to query when there's a valid hostname or IP address in the clipboard and the program receives focus. This would save the hassle of pasting the address in the box.

Perhaps it could then also perform the query, nearly completely automating the program.
_________________
Stephen
Need a LitlURL?


http://CodeBin.yi.org
Back to top View user's profile Send private message Visit poster's website
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Sun Oct 17, 2021 7:08 pm    Post subject: Reply with quote

pkSML,

I really appreciate your feedback and I'm working on your suggestion :)



Original checkbox name I know.... haha

Will keep you posted!
_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
admin
Site Admin


Joined: 03 Mar 2002
Posts: 1295

PostPosted: Tue Nov 02, 2021 9:39 pm    Post subject: Reply with quote

richardyork,

Thank you for sharing this with us.

Out of curiosity, what API or database are you using to get the location of an IP?
_________________
Follow @abyssws on Twitter
Subscribe to our newsletter
_________________
Forum Administrator
Aprelium - https://aprelium.com
Back to top View user's profile Send private message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Thu Nov 11, 2021 12:21 am    Post subject: Reply with quote

Thanks Aprelium :) I hope you are all well!

I'm using http://ip-api.com - JSON data at the moment.

Development has halted as my Visual Studio Project seems to have corrupted and I have no backups (schoolboy error I know) So if anyone has Visual Studio experience and fancies trying to sort it out with me or help that would be great.

I basically saved the project and then built it after making small modifications and now the core logic/code is fine but all of my controls, textboxes and buttons have vanished from form designer!
_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
admin
Site Admin


Joined: 03 Mar 2002
Posts: 1295

PostPosted: Sun Nov 14, 2021 9:13 pm    Post subject: Reply with quote

richardyork wrote:
Thanks Aprelium :) I hope you are all well!

I'm using http://ip-api.com - JSON data at the moment.


Thank you for the pointer. We'll add it to our interesing API endpoints list.
_________________
Follow @abyssws on Twitter
Subscribe to our newsletter
_________________
Forum Administrator
Aprelium - https://aprelium.com
Back to top View user's profile Send private message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Thu May 04, 2023 7:38 pm    Post subject: Reply with quote

It's been a while and I've dipped in and out of this little project from time to time.

Here's the latest update. Think most of the bugs are ironed out.

Please excuse the screen grab from my LinkedIn post, thought Aprelium might appreciate the sly advert to my LinkedIn followers :)



You can find the application here: https://tinyurl.com/RichardYork

No installation required

Now includes logging, header info, auto paste from clipboard (see notes in info/readme), Google Maps bug ironed out and a few more bits and bobs under the hood
_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
Horizon
-


Joined: 18 Feb 2022
Posts: 54

PostPosted: Thu May 04, 2023 10:36 pm    Post subject: Reply with quote

Hi,
I thought that you could try a different layout UI-wise for fitting more controls into a smaller area:

You could use a MenuBar for the program options, a SysListView for text information & Tabs for the various information types.



This way the Google Maps view will have its own tab with longer overflow sliders.

Having the option to capture the frame (IE ActiveX?) of the Google Maps page into PNG could be another interesting feature.

There could also be some icons on button controls & menu items.

Probably the famfamfam or silk icon packs will contain all the icons you need for an IP Geolocation user interface.

For the HTTP server info, you might want to spoof a basic web browser profile in a settings page where we could choose what to use as a custom User-Agent or other headers.

I think that the best way to display HTTP heades is to d it the debug-proxy way: two text fields with the raw HTTP request & the raw HTTP response with headers (you can omit response bodies, the most important part is to have the exact HTTP response up to the last header).

For the hostname (DNS info) tab, you could also add info for when a domain expires, when it was registered, what are the nameservers & its registrar.

If the user types a domain name for query avoid directly querying for it (even via DNS), first try to do WHOIS to see if it's taken.

Otherwise ISP DNS administrators can & do transmit their error logs to interested parties who might take the non-existent domain names (NXDOMAIN) for themselves.

Basically if the domain name doesn't exist in WHOIS, then just display a prompt telling the user that it's not possible to query it since it doesn't exist but they can try purchasing it.

I didn't try this software yet, I can try it later.

Nice to see that you're actually interested in the programs you make, that's a plus.

The best programs are the ones made by developers who acrually master the craft their program is made for.

For example a PCB design software is best made by developers who also have experience with making & ordering custom PCBs (circuit boards).

And as well IP lookup & location programs are best made by developers who understand well WHOIS, DNS & HTTP servers.

Just like flight simulators are best made by collaborating with actual accredited aircraft pilots during all stages of software development.
Back to top View user's profile Send private message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Thu May 04, 2023 11:03 pm    Post subject: Reply with quote

Wow thank you for such great feedback, ideas and inspiration!

I think I started out very simple and got stuck in a rut however your ideas are very relevant and valid!

I will work on it further and keep you posted, with credits to you obviously :)

Thank you kind sir for taking the time to write up such a great comment

Horizon wrote:
Hi,
I thought that you could try a different layout UI-wise for fitting more controls into a smaller area:

You could use a MenuBar for the program options, a SysListView for text information & Tabs for the various information types.



This way the Google Maps view will have its own tab with longer overflow sliders.

Having the option to capture the frame (IE ActiveX?) of the Google Maps page into PNG could be another interesting feature.

There could also be some icons on button controls & menu items.

Probably the famfamfam or silk icon packs will contain all the icons you need for an IP Geolocation user interface.

For the HTTP server info, you might want to spoof a basic web browser profile in a settings page where we could choose what to use as a custom User-Agent or other headers.

I think that the best way to display HTTP heades is to d it the debug-proxy way: two text fields with the raw HTTP request & the raw HTTP response with headers (you can omit response bodies, the most important part is to have the exact HTTP response up to the last header).

For the hostname (DNS info) tab, you could also add info for when a domain expires, when it was registered, what are the nameservers & its registrar.

If the user types a domain name for query avoid directly querying for it (even via DNS), first try to do WHOIS to see if it's taken.

Otherwise ISP DNS administrators can & do transmit their error logs to interested parties who might take the non-existent domain names (NXDOMAIN) for themselves.

Basically if the domain name doesn't exist in WHOIS, then just display a prompt telling the user that it's not possible to query it since it doesn't exist but they can try purchasing it.

I didn't try this software yet, I can try it later.

Nice to see that you're actually interested in the programs you make, that's a plus.

The best programs are the ones made by developers who acrually master the craft their program is made for.

For example a PCB design software is best made by developers who also have experience with making & ordering custom PCBs (circuit boards).

And as well IP lookup & location programs are best made by developers who understand well WHOIS, DNS & HTTP servers.

Just like flight simulators are best made by collaborating with actual accredited aircraft pilots during all stages of software development.

_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
admin
Site Admin


Joined: 03 Mar 2002
Posts: 1295

PostPosted: Sat May 06, 2023 4:13 pm    Post subject: Reply with quote

richardyork,

You're welcome to advertise you work especially if it is of such a high quality. :) Consider this forum as yours.

We'll also share the link with our team. The tool looks impressive.
_________________
Follow @abyssws on Twitter
Subscribe to our newsletter
_________________
Forum Administrator
Aprelium - https://aprelium.com
Back to top View user's profile Send private message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Thu May 11, 2023 6:24 pm    Post subject: Reply with quote

Thank you Aprelium!

When I asked/mentioned about "advertising", I meant by "advertising" that I shared a picture of my application on my LinkedIn profile, showing aprelium.com hence hoping others would be curious and drive a little traffic to you guys :) (hope that makes sense) :)

Anyway, Horizon - I have taken your ideas onboard and started to implement some.
There is still a lot of work to be done, however I am actively working on it!

GeoLocation data takes presidency for me as a tool for my work, which is the whole reason that I started this project. If this is an issue or a turn off then I will implement preferences and the ability to re-arrange tabs if you feel this is necessary in future however that is not a current priority.

Ignore the checkboxes, they are there temporarily for testing etc

Preview below.... Hope you approve



_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
Horizon
-


Joined: 18 Feb 2022
Posts: 54

PostPosted: Thu May 11, 2023 7:06 pm    Post subject: Reply with quote

Hello,
I like the idea of the merged Geolocation tab with a single data column, and the new design is starting to take shape.

I think you can keep the Geolocation tab with the left information column, it shouldn't cause map viewing issues since it's a single vertical one and the available space next to it is still rectangle/square.

You might just need however a console calculator:

In many of my designs I tend to use a textmode calculator, it's just like a Windows command prompt but you can select anywhere with the mouse cursor.

This will allow you to perfectly align the positions & sizes of all controls in your program UI conveniently.

For example instead of clicking on buttons in the Windows calculator I can do this:

400-16-16

If I had a window of width 400px, and if I wanted a 16px padding at the left & right side this formula would give me the maximum pixel width for a GUI element to fill all the witdth with 16px paddings at left & right sides.

Then I would position the GUI element at X=16 & Y=16.

Think of it like you would for CSS styles but with Win32 UIs instead.

ZoeSoft has a Console Calculator product priced at $5:
http://www.zoesoft.com/console-calculator/

If you decide to purchase it, you will get a license code without DRM (no Internet needed to activate, cans be used in any computer).

There are no restrictions on unlicensed use either, so you can take the time to evaluate it as needed if you decide to pick this one.

There are free alternatives on SourceForge as well:
https://lincalc.sourceforge.net/screens.html

However the other free ones I found didn't have the ability to select anywhere with the mouse cursor which is a game-changer for Win32 UI planning.

Another good practice is to let the program window be resized, and to set the appropriate resizing behavior values for each control.

The typical options are to lock the width and/or lock the height of a control, to let it move with the right end of the window or to make it stay exactly at its X:Y position and change only its size, etc.

I do this even if the window resizing isn't enabled for users anyway, since if Windows has to rescale your program window for HiDPI or accessibility reasons (or if a Windows tweak enables it anyway) your program window would be resized the wrong way.

Your program UI now looks prettier with the icons, it's also possible to set icons in the menubar's menu items.
Back to top View user's profile Send private message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Tue May 16, 2023 4:35 pm    Post subject: Reply with quote

So hears some screens of where I'm up to at the moment. Think most of the bugs have been ironed out so will concentrate on a few more of your suggestions shortly.

Resizing the application works without affecting controls etc or user experience.

Let me know what you think :)


_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
Horizon
-


Joined: 18 Feb 2022
Posts: 54

PostPosted: Fri May 19, 2023 10:37 am    Post subject: Reply with quote

Hello,
the new design of this program is neat with even the new ability to export the google map as PNG.

It also got more features for the port scan, traceroute & the DNS data tabs.

Perhaps an additional tweak could be to modify the appearance of buttons & textboxes?

It's almost perfect, and the current ongoing layout design is fine even if different from what I initially imagined.

So you could perhaps try to tweak the button controls to look more like the recent Windows ones (they currently look like pre-XP UI).

The textboxes can have a depth effect but it will be better to have a depth effect with a recent Windows-style textbox - it will be even better for the same effect.

I think the development of this program is positively improving towards looking like a regular Win32 one.

Thanks for sharing the screens!

There are also some components that might be interesting for this project/any other future one:
https://exontrol.com/

It cans be downloaded here for the full package:
https://exontrol.com/dld.jsp?product=exsuite&config=/com

The page above says:
"No registration required, no nag screens, no limitations, unlimited evaluation time."

It could be fun to tinker with components like this, and there might be some better-looking UI controls in there for VB.
Back to top View user's profile Send private message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Sat May 20, 2023 10:02 am    Post subject: Reply with quote

Hi Horizon,

Thanks again for the feedback :) Always appreciated!

I have always gone with functionality over appearance, however following your feedback I am currently working on a complete modern UI revamp as I appreciate it does look a little dated.

I am still struggling to get a stable, fast and efficient port scanning function coded so this feature has gone on the back burner for the time being. (I also work full time and struggling to get a good work/life balance at the moment)

I should be in a position to post at least a concept screen of the new UI soon.

Thanks again.

All the best.

Rich
_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Mon May 22, 2023 8:31 pm    Post subject: Reply with quote

As promised..... (may not be the actual finished product)



I also now have a working port scanner function so it is all slowly coming together
_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
Horizon
-


Joined: 18 Feb 2022
Posts: 54

PostPosted: Fri May 26, 2023 1:20 am    Post subject: Reply with quote

Hello,

Perhaps it's Windows 11 that makes it look this way, but the latest UI preview looks a lot like Chrome's UI.

That doesn't look 'Win32'-ish, it's better to make it look more like a common native program.

I know that there are many nice cjstyles & vcstyles for Delphi to theme application UIs though.

There might be some for Visual Basic perhaps, even if you might need to load a COM object first.

And for COM objects, it's not really a problem to register them because we have the 'Reg-Free COM' technology nowadays (since Windows XP, or Vista?).

So what I think is that there are many nice visual styles for Windows apps (Delphi as example) that still look Win32-ish.

And on DeviantArt we have lots of Windows (DWM) & Windows Media Player (WMP) available, to give an idea of the fact that we do have lots of themes.

And if you find many themes, you will be able to just implement one theming library API then simply give it the desired theme file.

It will apply universally on every single little UI control you might ever think of.

Here for example (I know it's not VB, but it's good to know about it) those Delphi styles are commercial (paid):
http://delphistyles.com/vcl/index.html

According to your latest UI preview you might have been interested in either Material UI White or Solitude VCL themes.

Although I've not been able to find VB6 theme components yet, perhaps searching for 'uxtheme vb6 controls' or 'vb ui control styles' might yield a few results.

For the theme engine itself I found only this page so far:
https://www.vbforums.com/showthread.php?848933-VB6-ThemedControls-ocx-(uxTheme-based-replacements-for-SSTab-and-VB-Frame)

The idea of theming your app is nice, you just need to find the right theme, a fine balance between modern UIs & Win32 conventions.

I hope you will manage to succeed with the UI design.
Back to top View user's profile Send private message
admin
Site Admin


Joined: 03 Mar 2002
Posts: 1295

PostPosted: Wed Jul 12, 2023 5:52 pm    Post subject: Reply with quote

Writing today a desktop application on Windows is not an easy task. There are no official UI libraries and Microsoft is doing everything to doom the developer experience.

The following excerpt from a Hacker News discussion captures the state of complete mess of UI frameworks on Windows: https://news.ycombinator.com/item?id=35368729
_________________
Follow @abyssws on Twitter
Subscribe to our newsletter
_________________
Forum Administrator
Aprelium - https://aprelium.com
Back to top View user's profile Send private message
richardyork
-


Joined: 22 Jun 2004
Posts: 410
Location: United Kingdom

PostPosted: Mon Nov 13, 2023 11:02 am    Post subject: Reply with quote

It's been a little quiet around here so thought I'd say hi and provide the following

Uploaded this to Sourceforge to make it easier to download: https://sourceforge.net/u/ry-geoip-3/profile

I've had a few downloads but not much feedback.

Hope all it well!
_________________
Please SEARCH the forums BEFORE asking questions!
Back to top View user's profile Send private message
admin
Site Admin


Joined: 03 Mar 2002
Posts: 1295

PostPosted: Sat Dec 02, 2023 9:41 pm    Post subject: Reply with quote

richardyork,

Thank you for the update.

Out of curiosity, why choosing Sourceforge over more modern alternatives (Github for example)?
_________________
Follow @abyssws on Twitter
Subscribe to our newsletter
_________________
Forum Administrator
Aprelium - https://aprelium.com
Back to top View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Aprelium Forum Index -> Off Topic Discussions All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB phpBB Group