Как найти системный (локальный) IP-адрес во Flex? - PullRequest
3 голосов
/ 12 января 2012

Я работаю над проектом. Мы можем зарегистрировать жалобы в ИТ-отделе на системный сбой или сбой программного обеспечения.
В нашей компании каждый компьютер имеет уникальный системный (локальный) IP-адрес

Я хочу, чтобы моя жалоба была зарегистрирована по тому адресу, по которому ИТ-специалист сможет идентифицировать мою систему и восстановить ее.
Я нашел много на SO, но никто не решил мою проблему. Есть ли какие-то решения для этого? Любые предложения будут очень полезны.

Ответы [ 3 ]

3 голосов
/ 03 октября 2012

это способ получения ip-адреса от клиента Flex AIR:

public static function getClientIPAddress (version:String):String {
        var ni:NetworkInfo = NetworkInfo.networkInfo;
        var interfaceVector:Vector.<NetworkInterface> = ni.findInterfaces();
        var currentNetwork:NetworkInterface;

        for each (var networkInt:NetworkInterface in interfaceVector) {
            if (networkInt.active) {
                for each (var address:InterfaceAddress in networkInt.addresses) {
                    if (address.ipVersion == version) {
                        return address.address;
                    }
                }
            }
        }
        return "";
    }
3 голосов
/ 12 января 2012

Вы не указали, было ли это приложение на основе браузера или приложение AIR для настольного компьютера.

Браузерный Flash Player не будет иметь доступа к IP-адресу.Однако, когда Flash Player пропингует удаленные службы, IP-адрес запроса обычно доступен для этого запроса в виде переменной CGI.Доступ к этим переменным CGI будет зависеть от выбранного вами языка на стороне сервера.

Я не верю, что AIR также имеет собственный доступ к IP-адресу, однако вы должны иметь возможность получить к нему доступ с помощью чего-либокак NativeProcess или Native Extensions.Вы должны будете написать некоторый специфический код операционной системы, чтобы достигнуть этого все же.

1 голос
/ 16 января 2012

Вы не можете сделать это только через Flash Player. На данный момент, вы просто должны принять это как окончательный ответ. В этом нет особого смысла. , , если вы воспользуетесь Google для этого, вы обнаружите, что многие эксперты по Flash разочарованы этим ограничением со стороны Adobe.

Другой ответ правильный . , , то есть есть способы сделать это, если вы используете Adobe Air или другие методы, не относящиеся к Adobe, такие как CGI, PHP, Java, .NET и т. д.

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

...