Sign in to follow this  
Followers 0
Chance

Router or Modem connection?

9 posts in this topic

#1 ·  Posted (edited)

How can I determin how a person is connected to the internet?

Example: I wana know if someone is behind a router or just directly connected to a modem.

I need to know this because I have a problem where a script will try to create a server on a users PC and send itself some requests to check some basic things.

The problem comes when the user is not behind a router and just connected to a modem and the script doesn't need to automatically foward ports and just wait for a user to allow the firewall to let it do stuff.

thanks for any info

Edited by DeputyDerp

Share this post


Link to post
Share on other sites



Check the local IP address, I'm pretty sure if it's a router it's going to have an IP address in the range of 192.168.xxx.xxx, If it's not on a router, the local IP address probably will never equal that range, uless you've got a very strange cable modem.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

I need to know this because I have a problem where a script will try to create a server on a users PC and send itself some requests to check some basic things.

The problem comes when the user is not behind a router and just connected to a modem and the script doesn't need to automatically foward ports and just wait for a user to allow the firewall to let it do stuff.

This doesn't make much sense to me. How can the script do port forwarding in stead of the NatRouter?

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Check the local IP address, I'm pretty sure if it's a router it's going to have an IP address in the range of 192.168.xxx.xxx, If it's not on a router, the local IP address probably will never equal that range, uless you've got a very strange cable modem.

There are other private subnets that are used like 10.?.?.? or 172.16.?.? which will always have a NAT to get to the internet, but that doesn't guarantee that a public IP address isn't Natted when connection to the internet.

Jos :)


Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Most cable modems don't do NAT as far as I'm aware. So the IP address should be the external IP address visible to the world.

EDIT: I'm presupposing the OP was referencing a home computer user, the IP addresses used on a corporate network will of course be different.

Edited by BrewManNH

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

So the IP address should be the external IP address visible to the world.

Yes, I just asked a few people to run ConsoleWrite(@IPAddress1 & @CR) and tell me what came up.

Those that were using a router all got back the IP set through DHCP, which are those 192.168.X.X addresses.

I didn't know that @IPAddress1 returned the external IP of a user when connected through the modem.

This doesn't make much sense to me. How can the script do port forwarding in stead of the NatRouter?

Oh, I'm sorry, the script will basically use "HNetCfg.NATUPnP" to tell the router to use a port for the specific PC.

But currently, I don't have a solid way of knowing how the user is connected through a router or just directly to the modem.

I'm looking for something that can help me trigger the part where it will set the ports to use for the local machine only if necessary.

Edited by DeputyDerp

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Default Gateway or Residential Gateway may give a little more indication as well. If it is in a private subnet then you can assume it is a router that is handling the dhcp.

http://en.wikipedia.org/wiki/Private_network

That has all of the private IP ranges. Which are IP's that technically are not routable on the internet as I understand it.

Here is an article about PAT which is a more accurate term than NAT for what most residential grade routers do.

http://www.webopedia.com/DidYouKnow/Computer_Science/2006/NAT_and_PAT.asp

Edited by Nunos

Share this post


Link to post
Share on other sites

Default Gateway or Residential Gateway may give a little more indication as well. If it is in a private subnet then you can assume it is a router that is handling the dhcp.

http://en.wikipedia.org/wiki/Private_network

That has all of the private IP ranges. Which are IP's that technically are not routable on the internet as I understand it.

Here is an article about PAT which is a more accurate term than NAT for what most residential grade routers do.

http://www.webopedia.com/DidYouKnow/Computer_Science/2006/NAT_and_PAT.asp

Thank you, I'll be sure to keep this bookmarked.

Share this post


Link to post
Share on other sites

@IPAddress1 returns what you see when you type ipconfig.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0