Приветствую Вас Гость
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Главная страница
  • Форум (Новoe на форуме)
  • Быстрый старт
  • Блог
  • Видео уроки
  • Каталог файлов
  • Статьи и уроки
  • Юзербары
  • FAQ
  • Обратная связь
  • Для начинающих [9]
    Заморочки [4]
    Для немного понимающих 39длл [9]
    Сложный уровень [4]

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    [ Кто нас сегодня посетил ]
    Главная » Статьи » Статьи » Для немного понимающих 39длл

    Определение ip адреса
    Способ первый:

    Ну возможно есть менее извращенские способы узнать ip адрес машины с помощью 39dll... Не знаю, я, во всяком случае не нашел.
    Итак, перед нами стоит задача определить ip адрес клиента и записать его в БД. Что же нам понадобится?

    • Game Maker
    • 39dll.ged
    • Хостинг с поддержкой php
    • Хостинг с поддержкой MySql *

    * - Ну, это не обязательно. Все зависит от ваших мотивов.

    1) Сначала мы научимся генерировать HTML запросы из Game Maker - вот выдержка из справки по 39dll:
    Теперь, когда мы подключены к серверу, мы должны послать сообщение для того, чтобы что-то произошло. Так что, если мы хотим выполнить файл PHP на удаленном сервере нам необходимо построить GET запрос и отправить его через сокет. Допустим, файл называется "myfile.php", и что бы запустить его, перейдите по этой ссылке: http://google.com.au/myfile.php?msg=HELLO

    Итак. От нас требуется построить GET запрос... Как же это сделать? Читаем дальше:

    Quote
    newLine = chr(13) + chr(10);
    dll39_buffer_clear(0);
    dll39_write_chars("GET /myfile.php?msg=HELLO HTTP/1.0" + newLine,0);
    dll39_write_chars("Host: www.google.com.au" + newLine,0);
    dll39_message_send(sockId,0,0,0);

    Ну, думаю, что здесь разберетесь. Вместо www.google.com.au - пишем нужный адрес, а вместо /myfile.php?msg=HELLO - путь до php скрипта.

    2) Теперь мы напишем свой HTTP запрос:
    Создаем новый проект (ну или открываем уже существующий), подключаем библиотеку 39dll и в нужном вам событии пишем:

    Quote
    sc_php('ваш сайт', 'имя пхп скрипта.php?имя переменной=значение переменной');

    example:

    Quote
    sc_php('site.ru', 'other/script.php?login=fil');

    2.5) Ну с этим все понятно. Теперь сам скрипт sc_php:

    Quote
    socked = dll39_tcp_connect(argument0, 80, 2);
    if (!socked)
    {
    show_message('Невозможно подключиться к ' + string(argument0));
    game_end();
    }
    dll39_set_format(socked, dll39_format_text, chr(13) + chr(10));
    newline = chr(13) + chr(10);
    dll39_buffer_clear(0);
    dll39_write_chars('GET /'+ string(argument1) + ' HTTP/1.0' + newline, 0);
    dll39_write_chars('Host: ' + string(argument0) + newline, 0);
    dll39_message_send(socked, 0, 0, 0);

    3) Теперь напишем php скрипт, определяющий ip адрес и записывающий его в БД:

    Quote
    <php
    $host = "error-games.ru";
    $user = "errorg_test";
    $pass = "d16hg5";
    $db = "errorg_db";
    $ip = $_SERVER['REMOTE_ADDR']; // А вот и само определение ip адреса, если вы не пользуетесь БД, то дальше можно не читать. :^)
    $table = "game_table";
    $login = $_GET['login']; // Вот эта одна из самых важных строчек. Она записывает переданный нами логин в переменную.
    mysql_connect($host, $user, $pass) OR DIE ("Не могу создать соединение");
    mysql_select_db($db) or die(mysql_error());
    $query = "update $table set ip = '$ip' where login = '$login'"; // Создаем SQL запрос на изменение данных в столбце "ip" и при условии, что "login" = переданный нами логин.
    mysql_query($query) or die(mysql_error());
    mysql_close();
    ?>


    Способ второй (не помню уже где я его увидел, если найдете - сообщите):

    Понадобится только Game Maker и 39dll.ged
    Создем скрипт и туда пишем:

    Quote
    /*
    script will return your network ip address. It connects to whatismyip.com:80 which sends
    the ip address in the form of a http payload packet.
    */

    var tcp;
    tcp = dll39_tcp_connect("whatismyip.org", 80, 0);
    if(!tcp)return "";
    dll39_set_format(tcp,dll39_format_text, chr(13) + chr(10) + chr(13) + chr(10)); //set format to text mode to receive double blank lines (the whole header file)
    //send get request
    dll39_buffer_clear(0);
    dll39_write_chars("GET / HTTP/1.1" + chr(13) + chr(10),0);
    dll39_write_chars("Host: whatismyip.org" + chr(13) + chr(10),0);
    dll39_write_chars("Connection: close"+chr(13) + chr(10),0);
    dll39_write_chars("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-alambik-script, application/x-alambik-alamgram-link, */*"+chr(13)+chr(10),0);
    dll39_write_chars("Accept-Language: en-us"+chr(13) + chr(10),0);
    dll39_write_chars("User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)" +chr(13) + chr(10),0);
    dll39_message_send(tcp,0,0,0);

    a = dll39_message_receive(tcp,0,0); //receive http header (and ignore)
    a = dll39_message_receive(tcp,16,0); //receive payload data
    dll39_socket_close(tcp);
    return dll39_read_chars(dll39_bytes_left(0),0); //return the payload data (ip address in this case)


    Этот скрипт возвращает ваш ip


    Автор: Ерфилов "Фил" Роман
    Категория: Для немного понимающих 39длл | Добавил: Фил (13.10.2010)
    Просмотров: 1172 | Комментарии: 5 | Рейтинг: 0.0/0
    Всего комментариев: 5
    5  
    Этот способ тоже добавь в статью... Наконец то не будет проблем с поиском сереров, раньше нужно было ип в сервер вводить...

    4  

    3  
    вот нашел как через 39dll еще свой ай пи найти:

    2  
    ха ха)) дальше будет отправка данных с Game Maker на php сайт Это будет кульминационной статьей и после нее я буду разрабатывать сетевую часть своей стратегии :^)

    ps надеюсь что мои статьи кому-нибудь помогут и это не просто всем известный трэш :^)


    1  
    Ну ты прям разошелся с этим php))) За неделю штук 5 статей уже скоро будешь стряпать, интересно что будет дальше)))

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    -->


    Логин:
    Пароль:

    Хостинг от uCoz