Статьи

Получить IP-адрес пользователя с помощью PHP и ActionScript 3

Адрес интернет-протокола (IP-адрес) — это уникальный номер, назначаемый каждому устройству, подключенному к Интернету. По разным причинам может быть полезно получить IP-адрес пользователя, например, например, заблокировать спамера в приложении чата. В этом уроке я покажу вам, как получить и отобразить IP-адрес пользователя с помощью PHP и ActionScript.


Давайте посмотрим на конечный результат, к которому мы будем стремиться:

Примечание: этот SWF-файл просто показывает интерфейс, он не показывает фактический IP-адрес, поскольку он не подключен к серверу PHP.

Сценарий PHP и SWF, которые вы создаете в этом руководстве, безусловно, могут использоваться вместе для отображения фактического IP-адреса пользователя.


Вы узнаете, как писать и использовать код php для извлечения данных, сгенерированных с сервера с использованием ActionScript 3, а затем использовать эти данные в своем приложении.


Запустите Flash и создайте новый документ. Установите размер сцены 540x300px и частоту кадров 24 кадров в секунду.


Это интерфейс, который мы будем использовать: простой фон, кнопка для вызова функции, которая будет получать данные, и некоторые TextFields для отображения данных, полученных с веб-сервера.

Перейдите к следующим шагам, чтобы увидеть, как это сделано.


Выберите инструмент «Прямоугольник» (R), создайте прямоугольник шириной 540 пикселей и высотой 300 пикселей и залейте его этим радиальным градиентом # 424A57, # 232730. Сосредоточьте прямоугольник, чтобы соответствовать сцене.


Кнопка будет использоваться для вызова функции, которая будет читать файл PHP с веб-сервера.

Используйте Овальный инструмент (O), чтобы создать круг #EEEEEE размером 64x64px, и отцентрируйте его на сцене.

Чтобы создать стрелку в центре, мы будем использовать инструмент PolyStar (нажмите и удерживайте кнопку «Инструмент прямоугольника», и появится контекстное меню, в котором вы можете выбрать инструмент), с выбранным инструментом перейдите на панель свойств и нажмите кнопка настроек.

Установите Количество сторон на 3 и нажмите ОК.

Создайте треугольник 35x19px и с помощью Rectangle Tool (R) нарисуйте прямоугольник 19x18px. Совместите их, чтобы сформировать стрелу.

Заполните стрелку другим цветом, поместите ее в центр круга и разбейте их на части (Cmd + B), чтобы разрезать форму стрелки в круге.

Преобразуйте фигуру в кнопку и назовите ее getButton .


Выберите Text Tool (T) и создайте динамическое текстовое поле, этот формат используется в примере: DIN Bold, 70pt, #EEEEEE. Используя тот же инструмент, создайте другое поле, на этот раз это статическое поле, в котором будет отображаться «Ваш IP-адрес:», используемый в качестве обратной связи с пользователем.

Центрируйте текстовые поля, как показано на рисунке:

Назовите динамическое текстовое поле ipField .


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

Выберите динамические текстовые поля и перейдите на панель « Свойства» в разделе « Символ » и нажмите кнопку « Вставить …» .

Появится новое окно, выберите символы, которые вы хотите вставить (в данном случае цифры), и нажмите OK.


В демоверсии вы заметите, что TextFields и Button имеют некоторый скос, это простой эффект высокой печати.

Чтобы придать текстовым полям и кнопкам такой вид, продублируйте фигуры, уже находящиеся на сцене, и с помощью стрелок на клавиатуре переместите его на 1 пиксель вверх. Измените цвет на # 1B1E25, чтобы завершить эффект.


PHP — это мощный язык сценариев, который позволяет вашему приложению выполнять код на стороне сервера, в этом случае мы получим IP-адрес пользователя с помощью сценария на веб-сервере.

Откройте предпочитаемый редактор PHP (любой текстовый редактор выполнит эту работу) и напишите следующие строки:

1
2
3
4
5
6
<
 
$ip = $_SERVER[‘REMOTE_ADDR’];
echo $ip;
 
?

Этот код говорит серверу получить удаленный адрес (IP) посетителя, а затем возвращает полученный адрес, который хранится в переменной $ ip .


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

Сохраните файл PHP как script.php и загрузите его на свой веб-сервер, помните, что мы вызовем этот файл позже, используя ActionScript, поэтому не забывайте путь, куда вы его загрузили.


Теперь пришло время для нашего любимого языка ..

Создайте новый класс ActionScript 3.0 и сохраните его как Main.as в папке вашего класса.


1
2
package
{

Ключевое слово package позволяет вам организовать ваш код в группы, которые могут быть импортированы другими сценариями, рекомендуется именовать их, начиная со строчной буквы, и использовать межстрочные буквы для последующих слов (например, myClasses ). Их также часто называют по URL-адресу сайта вашей компании, поэтому http://mycompany.com будет использовать: com.mycompany.classesType.myClass .

В этом примере мы используем один класс, поэтому на самом деле нет необходимости создавать папку классов или устанавливать пакет.


Это классы, которые нам нужно импортировать, чтобы наш класс работал, директива import делает внешние классы и пакеты доступными для вашего кода.

1
2
3
4
5
6
7
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.Strong;

Ключевое слово extends определяет класс, который является подклассом другого класса. Подкласс наследует все методы, свойства и функции, так что мы можем использовать их в нашем классе.

1
2
public class Main extends Sprite
{

В этом примере класс Main наследует все методы и свойства класса Sprite .


Мы будем использовать две переменные. Добавьте это ниже объявления класса:

1
2
var urlLoader:URLLoader = new URLLoader();
var tween:Tween;

urlLoader создает экземпляр класса URLLoader, который будет обрабатывать загрузку внешнего файла PHP, в то время как анимация объявляет объект, который будет использовать класс Tween для анимации.


Конструктор — это функция, которая запускается, когда объект создается из класса, этот код выполняется первым, когда вы создаете экземпляр объекта или запускается с использованием класса документа.

1
2
public function Main():void
{

Следующая строка добавляет слушателя к кнопке на сцене, чтобы отреагировать на событие мыши MOUSE_UP.

1
getButton.addEventListener(MouseEvent.MOUSE_UP, getIP);

Этот код выполняется при нажатии кнопки, он загружает php-страницу, которую мы написали ранее на сервере, и вызывает функцию, когда загрузка завершена. Он также обрабатывает анимацию кнопок.

1
2
3
4
5
6
7
private function getIP(e:MouseEvent):void
{
    urlLoader.load(new URLRequest(«http://www.mywebsite.com/script.php»));
    urlLoader.addEventListener(Event.COMPLETE, showIP);
             
    tween = new Tween(getButton, «y», Strong.easeOut, getButton.y, 340, 1, true);
}

Следующая функция выполняется, когда файл PHP полностью загружен. Он отображает полученные данные (IP-адрес, который мы «повторили»), используя TextFields на этапе.

1
2
3
4
5
private function showIP(e:Event):void
{
    ipField.text = e.target.data;
    ipFieldPressed.text = e.target.data;
}

Вернитесь к FLA и в Панели свойств> Раздел публикации> Поле класса добавьте Main как значение. Это свяжет этот класс с классом документа .


Теперь вы знаете, как получить и использовать IP-адрес пользователя в своем Flash-фильме, экспериментировать и применять этот пример в своих собственных проектах!

Надеюсь, вам понравился этот урок, спасибо за чтение!