# US 11,736,435 B2 · Automatic IPV6/IPV4 fallback approach in proxy networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,736,435 B2
- Document ID: US11736435B2
- Status: Granted
- Kind: B2
- Application number: 18/071,558
- Filed: 2022-11-29
- Published: 2023-03-23
- Granted: 2023-08-22
- Earliest claimed: 2021-02-04
- Assignees: Webshare Software Company
- Applicants: Webshare Software Company
- Inventors: Asim Utku Zihnioglu
- Web page: https://patentgrep.com/patent/US11736435B2

## CPC

- H04L 61/251: between different IP versions
- H04L 61/59: using proxies for addressing
- H04L 61/10: of different types
- H04L 61/4511: using domain name system [DNS]
- H04L 61/5061: Pools of addresses
- H04L 63/0281: {Proxies}
- H04L 67/59: Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
- H04L 2101/686: using dual-stack hosts, e.g. in Internet protocol version 4 [IPv4]/Internet protocol version 6 [IPv6] networks
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The method for an automated IPv6/IPv4 fallback approach in proxy networks is presented. In some embodiments, the method comprises receiving, at a proxy server, a request from a client executing on a client computer for access to a target computer; determining identification-information of the client; determining an address pair including an IPv6 address and an IPv4 address of the proxy server; assigning the address pair to the identification-information of the client; establishing a first communications connection between the client computer and the proxy server using one of IP addresses included in the address pair, and a second communications connection between the proxy server and the target computer using one of IP addresses included in the address pair; and facilitating a network packet flow between the client computer and the target computer using the first communications connection and the second communications connection.

## Claims

### Claim 1

A computer system comprising:
one or more computer processors;
storage media; and
instructions stored in the storage media that, when executed by the one or more computer processors, cause the one or more computer processors to perform:
receiving, at a proxy server of a plurality of proxy servers, a request from a client executing on a client computer for access to a target computer;
requesting one or more IP addresses of the target computer from a Domain Name System (DNS) server;
upon receiving the one or more IP addresses of the target computer, determining whether the one or more IP addresses include an IPv6 address of the target computer;
in response to determining that the IPv6 address of the target computer is included in the one or more IP addresses of the target computer:
determining whether the plurality of proxy servers includes an IPv6 proxy server configured to handle IPv6 communications;
in response to determining that the plurality of proxy servers includes the IPv6 proxy server:
selecting an IPv6 address of the IPv6 proxy server from a pool of IP addresses assigned to the plurality of proxy servers;
establishing, by the IPv6 proxy server, an IPv6 communications connections between the IPv6 proxy server and the target computer using the IPv6 address of the target computer and the IPv6 address of the IPv6 proxy server;
in response to determining that the one or more IP addresses does not include the IPv6 address of the target computer:
determining whether an IPv4 address of the target computer is included in the one or more IP addresses of the target computer:
determining whether the plurality of proxy servers includes an IPv4 proxy server configured to handle IPv4 communications;
in response to determining that the plurality of proxy servers includes an IPv4 server:
selecting an IPv4 address of the IPv4 proxy server from the pool of IP addresses assigned to the plurality of proxy servers;
establishing, by the IPv4 proxy server, an IPv4 communications connections between the IPv4 proxy server and the target computer using the IPv4 address of the target computer and the IPv4 address of the IPv4 proxy server.

### Claim 2 (depends on 1)

The computer system of claim 1, further comprising instructions stored in the storage media that, when executed by the one or more computer processors, cause the one or more computer processors to perform:
determining, by the proxy server, identification-information of the client;
determining, by the proxy server, an address used by either the IPv6 proxy server or IPv4 proxy server to connect to the target computer.

### Claim 3 (depends on 2)

The computer system of claim 2, further comprising instructions stored in the storage media that, when executed by the one or more computer processors, cause the one or more computer processors to perform:
determining, by the proxy server, an address pair and including, in the address pair, the address and the identification-information of the client.

### Claim 4 (depends on 3)

The computer system of claim 3, further comprising instructions stored in the storage media that, when executed by the one or more computer processors, cause the one or more computer processors to perform:
determining, by the proxy server, whether the identification-information of the client comprises a username that is unique in a computer network in which the proxy server is implemented;
in response to determining that the username of the client is unique, assigning, by the proxy server, the address pair of the proxy server to the username of the client.

### Claim 5 (depends on 4)

The computer system of claim 4, further comprising instructions stored in the storage media that, when executed by the one or more computer processors, cause the one or more computer processors to perform:
in response to determining that the username of the client is not unique, determining, by the proxy server, whether an IP address of the client computer is unique in the computer network in which the proxy server is implemented;
in response to determining that the IP address of the client computer is unique, assigning, by the proxy server, the address pair of the proxy server to the IP address of the client computer.

### Claim 6 (depends on 5)

The computer system of claim 5, further comprising instructions stored in the storage media that, when executed by the one or more computer processors, cause the one or more computer processors to perform:
in response to determining that the IP address of the client computer is not unique, determining, by the proxy server, whether a tuple including the IP address of the client computer and a port identifier of a port on which the proxy server received the request is unique in the computer network in which the proxy server is implemented;
in response to determining that the tuple including the IP address of the client computer and the port identifier of the port is unique, assigning, by the proxy server, the address pair of the proxy server to the tuple.

### Claim 7 (depends on 1)

The computer system of claim 1, further comprising instructions stored in the storage media that, when executed by the one or more computer processors, cause the one or more computer processors to perform:
in response to determining that the one or more IP addresses of the target computer neither include an IPv6 address nor an IPv4 address, generating and transmitting an error message in a same step.

### Claim 8

A computer-implemented method comprising:
receiving, at a proxy server of a plurality of proxy servers, a request from a client executing on a client computer for access to a target computer;
requesting one or more IP addresses of the target computer from a Domain Name System (DNS) server;
upon receiving the one or more IP addresses of the target computer, determining whether the one or more IP addresses include an IPv6 address of the target computer;
in response to determining that the IPv6 address of the target computer is included in the one or more IP addresses of the target computer:
determining whether the plurality of proxy servers includes an IPv6 proxy server configured to handle IPv6 communications;
in response to determining that the plurality of proxy servers includes the IPv6 proxy server:
selecting an IPv6 address of the IPv6 proxy server from a pool of IP addresses assigned to the plurality of proxy servers;
establishing, by the IPv6 proxy server, an IPv6 communications connections between the IPv6 proxy server and the target computer using the IPv6 address of the target computer and the IPv6 address of the IPv6 proxy server;
in response to determining that the one or more IP addresses does not include the IPv6 address of the target computer:
determining whether an IPv4 address of the target computer is included in the one or more IP addresses of the target computer:
determining whether the plurality of proxy servers includes an IPv4 proxy server configured to handle IPv4 communications;
in response to determining that the plurality of proxy servers includes an IPv4 server:
selecting an IPv4 address of the IPv4 proxy server from the pool of IP addresses assigned to the plurality of proxy servers;
establishing, by the IPv4 proxy server, an IPv4 communications connections between the IPv4 proxy server and the target computer using the IPv4 address of the target computer and the IPv4 address of the IPv4 proxy server.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
determining, by the proxy server, identification-information of the client;
determining, by the proxy server, an address used by either the IPv6 proxy server or IPv4 proxy server to connect to the target computer.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
determining, by the proxy server, an address pair and including, in the address pair, the address and the identification-information of the client.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
determining, by the proxy server, whether the identification-information of the client comprises a username that is unique in a computer network in which the proxy server is implemented;
in response to determining that the username of the client is unique, assigning, by the proxy server, the address pair of the proxy server to the username of the client.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
in response to determining that the username of the client is not unique, determining, by the proxy server, whether an IP address of the client computer is unique in the computer network in which the proxy server is implemented;
in response to determining that the IP address of the client computer is unique, assigning, by the proxy server, the address pair of the proxy server to the IP address of the client computer.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
in response to determining that the IP address of the client computer is not unique, determining, by the proxy server, whether a tuple including the IP address of the client computer and a port identifier of a port on which the proxy server received the request is unique in the computer network in which the proxy server is implemented;
in response to determining that the tuple including the IP address of the client computer and the port identifier of the port is unique, assigning, by the proxy server, the address pair of the proxy server to the tuple.

### Claim 14 (depends on 8)

The method of claim 8, further comprising:
in response to determining that the one or more IP addresses of the target computer neither include an IPv6 address nor an IPv4 address, generating and transmitting an error message in a same step.

### Claim 15

A computer-readable storage medium storing one or more instructions which, when executed by one or more processors, cause the one or more processors to perform:
receiving, at a proxy server of a plurality of proxy servers, a request from a client executing on a client computer for access to a target computer;
requesting one or more IP addresses of the target computer from a Domain Name System (DNS) server;
upon receiving the one or more IP addresses of the target computer, determining whether the one or more IP addresses include an IPv6 address of the target computer;
in response to determining that the IPv6 address of the target computer is included in the one or more IP addresses of the target computer:
determining whether the plurality of proxy servers includes an IPv6 proxy server configured to handle IPv6 communications;
in response to determining that the plurality of proxy servers includes the IPv6 proxy server:
selecting an IPv6 address of the IPv6 proxy server from a pool of IP addresses assigned to the plurality of proxy servers;
establishing, by the IPv6 proxy server, an IPv6 communications connections between the IPv6 proxy server and the target computer using the IPv6 address of the target computer and the IPv6 address of the IPv6 proxy server;
in response to determining that the one or more IP addresses does not include the IPv6 address of the target computer:
determining whether an IPv4 address of the target computer is included in the one or more IP addresses of the target computer:
determining whether the plurality of proxy servers includes an IPv4 proxy server configured to handle IPv4 communications;
in response to determining that the plurality of proxy servers includes an IPv4 server:
selecting an IPv4 address of the IPv4 proxy server from the pool of IP addresses assigned to the plurality of proxy servers;
establishing, by the IPv4 proxy server, an IPv4 communications connections between the IPv4 proxy server and the target computer using the IPv4 address of the target computer and the IPv4 address of the IPv4 proxy server.

### Claim 16 (depends on 15)

The computer-readable storage medium of claim 15, further storing instructions for:
determining, by the proxy server, identification-information of the client;
determining, by the proxy server, an address used by either the IPv6 proxy server or IPv4 proxy server to connect to the target computer.

### Claim 17 (depends on 16)

The computer-readable storage medium of claim 16, further storing instructions for:
determining, by the proxy server, an address pair and including, in the address pair, the address and the identification-information of the client.

### Claim 18 (depends on 17)

The computer-readable storage medium of claim 17, further storing instructions for:
determining, by the proxy server, whether the identification-information of the client comprises a username that is unique in a computer network in which the proxy server is implemented;
in response to determining that the username of the client is unique, assigning, by the proxy server, the address pair of the proxy server to the username of the client.

### Claim 19 (depends on 18)

The computer-readable storage medium of claim 18, further storing instructions for:
in response to determining that the username of the client is not unique, determining, by the proxy server, whether an IP address of the client computer is unique in the computer network in which the proxy server is implemented;
in response to determining that the IP address of the client computer is unique, assigning, by the proxy server, the address pair of the proxy server to the IP address of the client computer;
in response to determining that the IP address of the client computer is not unique, determining, by the proxy server, whether a tuple including the IP address of the client computer and a port identifier of a port on which the proxy server received the request is unique in the computer network in which the proxy server is implemented;
in response to determining that the tuple including the IP address of the client computer and the port identifier of the port is unique, assigning, by the proxy server, the address pair of the proxy server to the tuple.

### Claim 20 (depends on 15)

The computer-readable storage medium of claim 15, further storing instructions for:
in response to determining that the one or more IP addresses of the target computer neither include an IPv6 address nor an IPv4 address, generating and transmitting an error message in a same step.
