Add support for private IP range 10.0.0.0-10.255.255.255 (#10)

This commit is contained in:
redphx 2022-04-24 12:01:45 +07:00 committed by GitHub
parent 874145f2a5
commit 23dac08e45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 6 deletions

View File

@ -36,7 +36,7 @@ class PairingMethod(Enum):
REGEX_PAIRING_CODE = re.compile(r'^\d{6}$')
REGEX_LOCAL_IP_ADDRESS = re.compile(r'^192\.168\.((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.)(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$')
REGEX_LOCAL_IP_ADDRESS = re.compile(r'^(192\.168|10.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]))\.((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.)(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$')
async def get_device_ids():
@ -249,7 +249,7 @@ def is_valid_pairing_method(val):
def get_host_ip():
try:
for ip in socket.gethostbyname_ex(socket.gethostname())[2]:
if ip.startswith('192.168'):
if ip.startswith('192.168') or ip.startswith('10.'):
return ip
except Exception:
pass

View File

@ -149,6 +149,7 @@ class JoyDance:
''' Open a port on this machine so the console can connect to it '''
try:
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.settimeout(10)
conn.bind(('0.0.0.0', self.host_port))
conn.listen(5)
@ -382,7 +383,7 @@ class JoyDance:
if self.tls_certificate:
ssl_context.load_verify_locations(cadata=self.tls_certificate)
if '192.168' in self.pairing_url:
if self.pairing_url.startswith('192.168.') or self.pairing_url.startswith('10.'):
if self.console_conn:
server_hostname = self.console_conn.getpeername()[0]
else:

View File

@ -107,7 +107,7 @@ class PrivateIpAddress extends Component {
let console_ip_addr = props.console_ip_addr
let hostname = window.location.hostname
if (hostname.startsWith('192.168.')) {
if (hostname.startsWith('192.168.') || hostname.startsWith('10.')) {
host_ip_addr = hostname
lock_host = true
}
@ -162,7 +162,7 @@ class PrivateIpAddress extends Component {
`}
${([PairingMethod.FAST, PairingMethod.OLD].indexOf(pairing_method) > -1 || (pairing_method == PairingMethod.DEFAULT && !state.lock_host)) && html`
<input required id="ipAddr" type="text" inputmode="decimal" size="15" maxlength="15" placeholder="192.168.x.x" pattern="^192\\.168\\.((\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.)(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$" value=${addr} onKeyPress=${this.onKeyPress} onChange="${this.onChange}" />
<input required id="ipAddr" type="text" inputmode="decimal" size="15" maxlength="15" placeholder="192.168.?/10.?" pattern="^(192\\.168|10.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]))\\.((\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.)(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$" value=${addr} onKeyPress=${this.onKeyPress} onChange="${this.onChange}" />
`}
`
@ -385,7 +385,7 @@ class App extends Component {
const state = this.state
const pairing_method = state.pairing_method
let addr = pairing_method == PairingMethod.DEFAULT ? state.host_ip_addr : state.console_ip_addr
if (!addr.match(/^192\.168\.((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.)(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/)) {
if (!addr.match(/^(192\.168|10.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]))\.((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.)(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/)) {
alert('ERROR: Invalid IP address!')
document.getElementById('ipAddr').focus()
return