Как сделать получить IP-адрес хоста от гостя виртуального бокса nat?

С perl:

perl -Mopen=locale -lne '
  $c{uc $_}++ for /\b\p{Alpha}/g;
  END{for (sort {$c{$b} <=> $c{$a}} keys %c) {print "$c{$_} $_"}}'

Обратите внимание, что если некоторые буквы появляются в разложенном виде. Например, если É вводится как É (то есть E с последующим сочетанием ударений U+0301), а не как É (U+00E9), то она будет считаться как E, а не как É или É.

Если это вызывает беспокойство, то, вероятно, лучший подход - сначала разложить текст (поскольку некоторые графемы не имеют готовой формы) и работать на основе графемных кластеров. Есть такие, как , которые вы, вероятно, захотите разложить в любом случае:

Сравните:

$ printf 'my fine name is \uc9ric, maybe E\u301ric, certainly not Eric\n' |
  perl -Mopen=locale -lne '
    $c{uc $_}++ for /\b\p{Alpha}/g;
    END{for (sort {$c{$b} <=> $c{$a}} keys %c) {print "$c{$_} $_"}}'
2 E
2 N
2 M
1 C
1 FI
1 É
1 I

с:

$ printf 'my fine name is \uc9ric, maybe E\u301ric, certainly not Eric\n' |
  perl -Mopen=locale -MUnicode::Normalize -lne '
    $c{uc $_}++ for NFKD($_) =~ /\b(?=\p{Alpha})\X/g;
    END{for (sort {$c{$b} <=> $c{$a}} keys %c) {print "$c{$_} $_"}}'
2 É
2 M
2 N
1 E
1 I
1 C
1 F
2
28.06.2017, 11:51
2 ответа

Одним из способов добиться этого является хитрость таких сайтов, как whatsmyip.com. все, что вам нужно, это веб-сервер в вашей сети, который отправляет IP-адрес, откуда он получает запрос, обратно клиенту.

Помните, поскольку вы используете NAT, сервер видит адрес NAT-маршрутизатора (в данном случае VM-host) в качестве исходящего адреса.

Для этого вы можете создать php-скрипт (т.е. whatsmyip.php) в корневом каталоге вашего веб-сервера, например

//whatsmyip.php
<?php 
//Gets the IP address
$ip = getenv("REMOTE_ADDR") ; 
Echo "$ip; 
?> 

, и получить к нему доступ с вашего гостя, например http ://webserver/whatsmyip.php

(источник: Thoughtco.com )

Теперь вам нужно только оценить этот ответ в вашем сервисе

1
27.01.2020, 22:18

Принимая во внимание ответ Гунтберта, это касается:

  • Используйте сторонний веб-сервер во «внешней» сети для размещения удаленного ответчика адресов, как описано в данном ответе.
  • Во время фазы инициализации виртуальной машины (и/или периодически в зависимости от сетевого контекста )просмотрите ее, чтобы получить внешний адрес хоста Windows
  • Используйте полученный адрес для подделки URL-адресов при создании страниц.
0
27.01.2020, 22:18

Теги

Похожие вопросы