Jump to content

IP addressing problem in PHP file


PassingLurker

Recommended Posts

I forked a project from M. Schwartz in Adafruit about wifi controlled robot, and he uses local web server to access it. Now I wanted to the host online the server files. My only problem is this part of his php file

<?php

	// Load JSON state
    $string = file_get_contents("robot_state.json");
    $json_a= json_decode($string,true);

    // Handle GET request
    $json_a['speed'] = $_GET["speed"];
    $json_a['direction_left'] = $_GET["directionLeft"];
    $json_a['direction_right'] = $_GET["directionRight"];
	$json_a['reverse'] = $_GET["reverse"];
    // Save JSON file
    $fp = fopen('robot_state.json', 'w');
    fwrite($fp, json_encode($json_a));
    fclose($fp);

    // Create a TCP/IP socket & connect to the server
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    $result = socket_connect($socket, "192.168.1.6", "8888");

    // Request
    $in = "HEAD / HTTP/1.1\r\n";
    $in .= "Content-Type: text/html\r\n";
    $in .= $json_a['speed'] . "," . 
    $json_a['direction_left'] . "," .
    $json_a['direction_right'] . ",".
	$json_a['reverse'] . ",\r\n\r\n";
    $out = '';

    // Send request
    socket_write($socket, $in, strlen($in));

    // Read answer
    while ($out = socket_read($socket, 4096)) {
        echo $out;
    }

    // Close socket
    socket_close($socket);

?>

notice Line 19: socket_connect($socket, "192.168.1.6", "8888");

This is the part where it communicates to the wifi shield of the arduino. I know this simply wouldn't work now since this is only a private address and the files are now hosted in the internet. Can you guys teach me how to implement because I know this part of code will be quite different.

Link to comment
https://forums.phpfreaks.com/topic/291895-ip-addressing-problem-in-php-file/
Share on other sites

Not sure but I'd assume you could just change 192.168.1.6 to the users actual IP Address (could use $_SERVER['REMOTE_ADDR'] to do this). However the user will then need to configure their router to forward port 8888 to their arduino's internal LAN address (192.168.1.6).

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.