Okay, after surfing through the net, I can almost confirm that there is not a single site that tells me whether captive portal hinders the use of a wifi repeater or not. Due to my limited knowledge of how the Wifi protocol works, I can't help but ask several questions that may seem redundant to some. Anyway, here they are:
Assumption:
There is a Wifi with a captive portal that requires users to login on a webpage before connecting to the Internet
Q1:
If I simply extend that Wifi signal with a portable Wifi repeater, will the new extended Wifi signal work? Why or why not?
Q2:
After I pass the captive portal on a desktop, can I set the desktop as an access point to let other devices use the corresponding signal to connect to the Internet? Why or why not? (If yes, will other devices need to login once again?)
Q3:
Only if the answer is affirmative to question 2:
If the captive portal allows 10 hours of continuous connection after a successful log in, can I first connect to that Wifi via a computer and a router which then I close the computer but the router is on (using ap mode and connecting to the Wifi) and let other devices connect to the extended signal and connect to the Internet?
Super thanks to your help.
The answer to Q1 and Q2 is "no" with almost any captive portal software, which authorizes clients based on their IP and/or MAC address.
Reason is that the repeater/range extender/PC needs two interfaces to extend the range of the wifi cell, one interface in STA mode and the other in AP mode. Therefore routing (or bridging) is needed to carry data from clients on the repeater to the router, on which the captive portal runs.
In case of routing, most often NAT is used by the repeater to avoid having static routes on the wifi hotspot. So the captive portal just sees one IP, namely the one of the repeater.
But even if STA/AP interfaces are internally bridged together on the repeater to form one big IP network, the Ethernet frames from the repeater to the wifi hotspot carry only 3 MAC addresses: the source MAC address, the MAC address of the next hop and the destination MAC address. While the repeater sees the MAC address of the client connected to it as its source, it does not forward this MAC to the captive portal, but replaces it with its own MAC address (because when forwarding the repeater itself is the new source).
So the captive portal has no way to recognize any client behind the repeater and if an user logs in through the repeater, he/she actually logs in with the repeater's address (be it IP or MAC address), not with the address of the user's device. Result is that every device connected to the repeater appears as logged into the captive portal as soon as one user has logged in. Also, if one user logs out, all other users behind the repeater are logged out, too.
To overcome this, some routers can be configured to use WDS (wireless distribution system), but although WDS is contained in the 802.11 standard, the latter does not define any implementation requirements. So, several proprietary implementations are in use, which either use some sort of ARP NAT or a 4 address mode to transmit the origin's MAC address as 4th address in an (wireless) Ethernet frame. Since such WDS implementations require a common set up of the repeater and the captive portal by its admin - and in some cases even the same wifi chipsets on both devices -, I won't elaborate on that any further.
This is pure nonsense. An Ethernet packet has two MAC addresses - source and destination. Routers don't forward MAC addresses, only IP addresses. And a router doing NAT will replace the outgoing IP with it's own. Nobody can know how many hops if any are behind the device they are talking to. So there is no way for a captive portal to know if it is talking to a router doing NAT vs a single wireless client.
It's true that a wireless repeater won't work, because it tries to bridge a single IP network, but it should be entirely possible to build a wireless router that NAT routes between a captive portal and another wireless network, as long as it has some way to authenticate to the captive portal.
Related
I need to enable multiple devices to communicate with each other using OSC protocol which runs over IP protocol etc.
I have two wireless routers, one of them is capable of providing internet access from SIM card.
What I want to accomplish is:
provide all devices wireless connection for communication between each other
provide all devices connection to the Internet
avoid spending data from SIM card when my devices communicate with each other
This last point is what I can't solve - in my mind it should not be a problem. If I understand it correctly, I am creating a WLAN and there is no need for passing the data to the internet provider (or asking for data from him) and the router should act like a switch and route the signal from one device to another one if the IP and port is correct.
I have router TP-Link Archer C6 ; router TP-Link Archer MR200 ; Windows laptop ; Android phone ; iPad.
What I want to accomplish is remote control of DAW Reaper (running on Windows laptop) over Web Control Surface or OSC Protocol with TouchOSC app or Open Stage Control app.
I will appreciate any help!
Thank you very much in advance,
Peter
I'd like to know that a specific device (phone/tablet) has joined my WiFi network created by ESP8266 microcontroller. It shouldn't require any installed apps on that phone/tablet, if possible, to simplify the whole setup.
So I think I need to somehow identify connected clients, and MAC is not an option because it is subject to change randomly on, say, Apple devices.
Maybe it's possible to collect host names of connected clients?
I know that Windows and Ubuntu clients send their host names when getting IP from DHCP server (see here). Also, it's possible to find such information on, say, home Wi-Fi router admin web page (i.e. host names, their IPs and MACs).
I'm running DHCP server on ESP8266, but I haven't found any API that allows to get peer host name (i.e. reverse DNS). Does ESP8266 support getting such information?
How can I programtically get the MAC address of WiFi router.
i want the command or the program in c which will list only the mac address of devices which are connected to the my WiFi router. it it possible to get when i know the IP address of the router?
Getting the MAC of the WiFi router on which you are connected (or try to connect) is probably possible if you have access to low level network frame.
Now it looks you are indeed willing to get the MAC of ALL the devices connected to the WiFi router, which is another thing ! Unless the router has some building functionality that gives you this list (like an HTML summary, I don't know if openWrt provide this), I don't think by running a program in C on a client, you would be able to get the MACs of other connected clients !
But in case the router as the information in an html page (eg : from a remote administration), you might try to simulate login to administration, get this page then parse the page to get the MACs... from a C prog..
Taking your problem from another side, if you have a wireless adapter you can set in monitor mode, you could sniff the wireless traffic on the channel(s) opened by your targeted WiFi router, and list the distinct client connected. Have a look to BackTrack's ssidsniff ?
Use Case:
We have an iOS application where you can run a network test between an iOS device and its associated wireless access point to test throughput. The app can get the IP address of the iOS device just fine, but the user has to type in the IP of the access point.
Problem:
The task is to get the IP address of the associated access point, and pre fill it for the user, hence avoiding user intervention there.
My Approach:
Find out the Mac Address/BSSID of the access point.
I do this by employing the Captive Network API.
Issue an ARP request to find out the IP associated to the access point.
I haven't been able to accomplish this as of yet. Google and SO search has kind of lead me to a dead end here. Here are some similar questions:
How do I query the ARP table on iPhone? AND
ARP Requests on iPhone
Question:
What is the right way to do this? In fewer words, what is the best way to get the IP address of the access point an iOS device is connected to.
A WiFi access point is not necessarily an IP-capable device (although many of them are, but for configuration, not communications, purposes).
Even if you do get the actual access point's IP address, how are you going to test the throughput? You could send ICMP Echo requests, but that will just give you instantaneous round-trip times, not throughput, and many IP devices, for security reasons, are configured to not respond to ICMP ECHO requests.
BSSID is unique for each SSID on each Radio and it differs from the Access Point’s Mac Address. If you compare them you can see last characters of Mac Adresses are different for BSSID and the AccessPoint.
I am trying to do a little experiment and I'm getting pretty odd results that I can't explain. I came to my University with my friend, we both brought our laptops and we connected to the same WiFi. But from some reason, our computers couldn't communicate with each other. For example, I couldn't ping him, and I when I did an ARP Scan to find all the hosts on the LAN I didn't find him. He did the same. He couldn't ping me and he didn't find my laptop when he did an ARP scan. Yet, there were many other devices on the LAN that both of us could ping and that we both found in our ARP scan. The University may be big, but we sat just next to each other.
I know that the WiFi on the university may be complex, but yet I have no explanations of what is happening. We sit next to each other, connect to the same WiFi(same Access Point MAC), we both see many same devices in our LAN, yet we can't see each other. Anyone has any idea of what may be happening? Why can't we see/ping each other while we are on the same LAN?
Thanks! :)
The wireless access point probably has a security setting of "Wireless Isolation Within SSID" turned on. This function does exactly what you describe. It allows all authenticated users to see machines on the LAN, but not other wireless machines on the same access point.
Reconfigure your router and make some settings like this
LAN DHCP=Enable
Wireless Authentication type=WPA-PSK/WPA2-PSK
Encryption=AES
After this setting delete all Wireless network of router listed in your PC. And than connect, It will works. you can ping your both PC together.
Because you are connected to an infrastructure mode access point (99% of APs), in order to send packets to another device your laptop sends the packet to the AP (to the distribution system), and then the AP sends the packet to your friend (from the distribution system). You cannot connect 'directly' to your friend.
The AP can direct whether or not wireless clients can see each other - depending on the manufacturer this can be implemented in many different ways. You could talk to your system administrator about why/how this policy works.