Content fetching by mobile device selected based on battery charge level
A method for fetching a content from a web server to a client device is disclosed, using tunnel devices serving as intermediate devices. The tunnel device is selected based on an attribute, such as IP Geolocation. A tunnel bank server stores a list of available tunnels that may be used, associated with values of various attribute types. The tunnel devices initiate communication with the tunnel bank server, and stays connected to it, for allowing a communication session initiated by the tunnel bank server. Upon receiving a request from a client to a content and for specific attribute types and values, a tunnel is selected by the tunnel bank server, and is used as a tunnel for retrieving the required content from the web server, using standard protocol such as SOCKS, WebSocket or HTTP Proxy. The client only communicates with a super proxy server that manages the content fetching scheme.
1 . A method for use with a group of client devices that are each connectable to the Internet by using a wireless network connection, that are each addressed by a respective Internet Protocol (IP) address, that are each configured to function as a proxy device, and that are each associated with a respective numerical or character set value that corresponds to the proxy device functionality, and for use with a content identified by a content identifier, the method comprising:
storing, by a first server, a list of at least 10,000 IP addresses of the client devices in the group and the values associated with the client devices in the group;
receiving, by the first server from an additional client device over the Internet, initiated by the additional client device, an additional value associated with the additional client device;
adding, by the first server, in response to the receiving of the additional value, an IP address of the additional device to the list;
storing, by the first server, the received additional value;
receiving, by the first server, the content identifier;
identifying, by the first server, a first value;
selecting from the list, by the first server, a first IP address associated with a first client device that is associated with the first value;
selecting from the list, by the first server, a second IP address that is different from the first IP address and is associated with a second client device that is associated with the first value;
sending, by the first server to the selected first client device over the Internet, by using the first IP address, the content identifier;
receiving, by the first server from the selected first client device over the Internet, the content, or an error indication, in response to the sending of the content identifier to the selected first client device;
sending, by the first server to the selected second client device over the Internet, by using the second IP address, the content identifier; and
receiving, by the first server from the selected second client device over the Internet, the content, or an error indication, in response to the sending of the content identifier to the selected second client device,
wherein the list comprises at least 10,000 IP addresses.
2 . The method according to claim 1 , wherein the sending of the content identifier, by the first server to the selected first and second client devices, is performed simultaneously.
3 . The method according to claim 1 , wherein the content comprises a web page or a part thereof, and wherein the content identifier comprises a Uniform Resource Identifier (URI) or Uniform Resource Locator (URL) of the web page.
4 . The method according to claim 1 , wherein the sending, by the first server to the selected first or second client device of the content identifier comprises sending a HyperText Transfer Protocol (HTTP) or HTTP Secure (HTTPS) request that comprises the content identifier.
5 . The method according to claim 1 , further comprising:
selecting from the list, by the first server, a third IP address that is different from the first and second IP addresses and is associated with a third client device that is associated with a value that is equal to the first value; and
sending, by the first server to the selected third client device over the Internet, by using the third IP address, the content identifier.
6 . The method according to claim 1 , further comprising receiving, by the first server from the selected third client device over the Internet, the content, an error indication, or any combination thereof, in response to the sending of the content identifier to the selected third client device.
7 . The method according to claim 1 , further comprising storing, operating, or using, by the first server, a server operating system.
8 . The method according to claim 1 , wherein the list comprises at least 20,000, 50,000, 100,000, 200,000, 500,000, 1,000,000, 2,000,000, 5,000,000, or 10,000,000 IP addresses to select from.
9 . A non-transitory computer readable medium containing computer instructions that, when executed by a computer processor, cause the processor to perform at least part of the steps of claim 1 .
10 . The method according to claim 1 , wherein the content is stored in a web server, and the method further comprising fetching, by the selected first or second client device, the content from the web server.
11 . The method according to claim 1 , wherein each of the values comprises a respective identifier of an Internet Service Provider (ISP) or Autonomous System Number (ASN).
12 . The method according to claim 1 , wherein the sending of the content identifier, by the first server to the selected second client device over the Internet, is performed before the receiving of a response after sending of the content identifier by the first server to the selected first client device.
13 . The method according to claim 12 , wherein the sending of the content identifier, by the first server to the selected second client device, is performed in response to the receiving a response, by the first server from the selected first client device, to the sent content identifier.
14 . The method according to claim 13 , wherein the sending of the content identifier, by the first server to the selected second client device over the Internet, is performed in response to the receiving of the error indication by the first server from the selected first client device.
15 . The method according to claim 1 , wherein the receiving of the content identifier, by the first server, comprises receiving from a first device over the Internet.
16 . The method according to claim 15 , wherein the identifying of the first value comprises receiving, by the first server from the first device over the Internet, the first value.
17 . The method according to claim 15 , further comprising sending, by the first server to the first device over the Internet, the received content from the first or second client device.
18 . The method according to claim 1 , further comprising storing, or operating, by the first server, an operating system.
19 . The method according to claim 18 , further comprising storing or using a virtualized operating system, wherein the operating system is executed as a guest operating system as part of a Virtual Machine (VM).
20 . The method according to claim 19 , for use with a host computer that implement the VM, wherein the method further comprising executing, by the host computer, a hypervisor or a Virtual Machine Monitor (VMM), and wherein the guest operating system uses or interfaces virtual hardware.
21 . The method according to claim 19 , wherein the virtualization includes, or uses, full virtualization, para-virtualization, or hardware assisted virtualization.
22 . The method according to claim 1 , wherein the selecting of the first or second IP addresses comprises randomly selecting of the respective first or second IP address from the list.
23 . The method according to claim 22 , wherein the randomly selecting comprises using one or more random numbers generated by a random number generator that is based on software or hardware.
24 . The method according to claim 23 , wherein the random number generator is using thermal noise, shot noise, nuclear decaying radiation, photoelectric effect, or quantum phenomena.
25 . The method according to claim 23 , wherein the random number generator is based on executing an algorithm for generating pseudo-random numbers.
26 . The method according to claim 1 ,
further comprising storing, operating, or using, by the additional client first device, a client operating system, and wherein at least part of the steps is performed using the client operating system.
27 . The method according to claim 26 , wherein the client operating system uses one out of Microsoft Windows 7, Microsoft Windows XP, Microsoft Windows 8, Microsoft Windows 8.1, Linux, and Google Chrome OS.
28 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a Wireless Wide Area Network (WWAN).
29 . The method according to claim 28 , wherein the WWAN is a wireless broadband network.
30 . The method according to claim 29 , wherein the wireless network uses a WiMAX network, and the WiMAX network is compatible with IEEE 802.16-2009 standard.
31 . The method according to claim 1 , wherein the wireless network comprises a cellular telephone network.
32 . The method according to claim 31 , wherein the cellular telephone network is a Third Generation (3G) network that uses a protocol selected from the group consisting of UMTS W-CDMA, UMTS HSPA, UMTS TDD, CDMA2000 1×RTT, CDMA2000 EV-DO, and GSM EDGE-Evolution, or wherein the cellular telephone network uses a protocol selected from the group consisting of a Fourth Generation (4G) network that uses HSPA+, Mobile WiMAX, LTE, LTE-Advanced, MBWA, or is based on IEEE 802.20-2008 standard.
33 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a Wireless Personal Area Network (WPAN).
34 . The method according to claim 33 , wherein the WPAN is compatible with IEEE 802.15.1-2005 standard, or wherein the WPAN is a wireless control network that is compatible with IEEE 802.15.4-2003 standard.
35 . The method according to claim 1 , wherein the wireless network is compatible with a Wireless Local Area Network (WLAN).
36 . The method according to claim 35 , wherein the WLAN is according to, or is compatible with, IEEE 802.11-2012, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, or IEEE 802.11ac standard.
37 . The method according to claim 1 , wherein the first or second client device is housed in a single enclosure that is a hand-held enclosure or a portable enclosure.
38 . The method according to claim 37 , wherein the first or second client device a notebook computer, a laptop computer, a media player, a Digital Still Camera (DSC), a Digital video Camera (DVC or digital camcorder), a Personal Digital Assistant (PDA), a cellular telephone, a digital camera, a video recorder, a smartphone, or any combination thereof.
39 . The method according to claim 38 , wherein the first or second client device comprises a smartphone that is an Apple iPhone 6 or a Samsung Galaxy S6.
40 . The method according to claim 1 , further comprising storing, or operating, an operating system for executing at least one of the steps, by at least one of the client devices in the group, or by the selected first or second client device.
41 . The method according to claim 40 , wherein the operating system is a mobile operating system.
42 . The method according to claim 1 , further comprising storing, or operating, a web browser, by at least one of the client devices in the group, or by the selected first or second client device.
43 . The method according to claim 42 , wherein the web browser is a mobile web browser.
44 . The method according to claim 1 , wherein at least one of the client devices in the group, or the selected first or second client device, is integrated in part or entirely in an appliance.
45 . The method according to claim 44 , wherein a primary function of the appliance is cleaning, wherein the primary function is associated with clothes cleaning, and the appliance is a washing machine or a clothes dryer, or wherein the appliance is a vacuum cleaner.
46 . The method according to claim 44 , wherein a primary function of the appliance is water control or water heating.
47 . The method according to claim 44 , wherein the appliance is an answering machine, a telephone set, a home cinema method, a HiFi method, a CD or DVD player, an electric furnace, a trash compactor, a smoke detector, a light fixture, or a dehumidifier.
48 . The method according to claim 44 , wherein the appliance is a battery-operated portable electronic device, and the appliance is a notebook, a laptop computer, a media player, a cellular phone, a Personal Digital Assistant (PDA), an image processing device, a digital camera, a video recorder, or a handheld computing device.
49 . The method according to claim 44 , wherein a primary functionality of the appliance is food storage, handling, or preparation.
50 . The method according to claim 49 , wherein a primary function of the appliance is heating food, and wherein the appliance is a microwave oven, an electric mixer, a stove, an oven, or an induction cooker.
51 . The method according to claim 49 , wherein the appliance is a refrigerator, a freezer, a food processor, a dishwasher, a food blender, a beverage maker, a coffeemaker, or an iced-tea maker.
52 . The method according to claim 44 , wherein a primary function of the appliance is environmental control, and the appliance comprises, or is part of, an HVAC system.
53 . The method according to claim 52 , wherein a primary function of the appliance is temperature control, and wherein the appliance is an air conditioner or a heater.
54 . The method according to claim 44 , wherein the integration of the appliance and the respective client device comprises sharing a physical component.
55 . The method according to claim 54 , wherein the integration involves housing in an enclosure, sharing a processor, or mounting onto a surface.
56 . The method according to claim 54 , wherein the integration involves sharing a same connector.
57 . The method according to claim 56 , wherein the connector is a power connector for connecting to a power source, and wherein the integration involves sharing the same connector for being powered from same power source, or wherein the integration involves sharing same power supply.
58 . The method according to claim 1 , wherein each of the values comprises a geographical location that comprises a name or an identifier selected from a list consisting of a country, a region, a city, a street, a ZIP code, and a timezone.
59 . The method according to claim 58 , wherein each of the geographical location is based on IP geolocation.
60 . The method according to claim 59 , wherein the IP geolocation is based on W3C Geolocation API.
61 . The method according to claim 59 , for use with a database that associates geographical locations to IP addresses.
62 . The method according to claim 61 , wherein the database is stored in the first server, or wherein the method further comprising receiving and storing, by the first server, the database.
63 . The method according to claim 1 , wherein each of the values corresponds to a feature or characteristic of a hardware component or software application of client devices.
64 . The method according to claim 63 , wherein each of the values corresponds to a feature or characteristic of the hardware component of client devices.
65 . The method according to claim 64 , wherein each of the values comprises one of a first value that represents that the respective client device is stationary and a second value that represents that the respective client device is portable.
66 . The method according to claim 63 , wherein each of the values corresponds to a feature or characteristic of a software application installed, used, or operated, in the respective client devices.
67 . The method according to claim 66 , wherein each of the values respectively comprises a type, make, model, or version of the software application.
68 . The method according to claim 66 , wherein the software application comprises an operating system.