парсинг текста с arduino server

dimss
Offline
Зарегистрирован: 31.07.2014

здравтвуйте, создал сервер на ардуино он отправляет клыенту дание( температура влажность...) на сервере(покашто денвер) пробую еты дание парсить и втавлять туда куда мне надо. есле брать оддельно html документ тот што в ардуино работает то всьо норм, php справляетса с задачей, но когда прбую парсить уже то што идьот с ардуино, вилитает ошибка

Warning: file_get_contents(http://192.168.10.123/$0) [function.file-get-contents]: failed to open stream: HTTP request failed! <!doctype html> inF:\home\localhost\www\arduino\asistant.phpon line 136

в чом проблема, может потому что ардуино отсилает каждую строчку html кода оддельно??

client.println("<!doctype html>");
client.println("<html>");
client.println("<head>");
client.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />");
client.println("<title>DATE</title>");
client.println("</head>");
client.println("<body>");
client.println("<div id='T_tepliza_1'>"); client.println(t); client.println(" </div>");
client.println("<div id='T_Server'>"); client.println(Whole); client.println("."); if (Fract < 10) { client.println("0"); } client.println(Fract); client.println("\n"); client.println(" </p>"); client.println("</div>");
client.println("<div id='T_Vul'>"); client.println(t1); client.println("</div>");
client.println("<div id='T_Dat_1'>"); client.println(t2); client.println("</div>");
client.println("<div id='T_Dat_2'>"); client.println(t3); client.println("</div>");
client.println("<div id='Vologa_1'>"); client.println(h); client.println("</div>");
client.println("<div id='Napruga_1'>"); client.println(V); client.println("</div>");
client.println("</body>");
client.println("</html>");
client.stop();

 

dimss
Offline
Зарегистрирован: 31.07.2014

извените за ошибки ((

извлекаю дание таким способом

<?php $href = 'http://192.168.10.123/$0'; $page = file_get_contents($href); 
preg_match("/<div.*id=\"T_Vul\"(.+?)<\/div>/",$page,$match); print_r($match[0]); ?> °С</p>
dimss
Offline
Зарегистрирован: 31.07.2014

незнаю как удалить сообщения тут вставил не тот код и немогу его изменить поместил коментом више правельний код

leshak
Offline
Зарегистрирован: 29.09.2011

IMHO в корне не верный подход... парсить Html страницу предназначенную "для воспрития человеком".
К чему создавать себе излишние сложности?
Человеку отдавать "красивую страницу".
А для Php-шного робота "чего попроще...". В том виде в котором "парсить удобней бедет".
Хотите xml, хотите json (что-бы сразу php-шные либы можно было юзазать).
Или в виде urlEncode, если от ардуины будет приходить строка типа "t_dat_1=12.5&td_dat2=15.6" -ее же всяко проще будет распарсить?

Или каждое значание, просто отдельной строкой:

t_dat_1=12.5
t_dat_2=15.6

Берешь каждую отделную строку, разбиваешь ее по знаку "равно". Первый элемент - имя параметра. Второй - значение.

Вообщем советую "изобрести свой формат ответа". Который парсить будет легче.

А то с html-лем.... замучаетесь в regex-сах :)   А потом, захочится чуток дизайн сменить, дописать какому-нибудь div-чику css-класс и "весь парсинг пошел лесом".
Или еще один параметр передавать заходите... через пол-годика.... поверте, заново написать регексы может оказатся проще чем проадейтить имеющиеся (то есть "переписать парсер с нуля"). Поддерживать регексы - ОЧЕНЬ трудно.

P.S. А судя по ошибке, похоже у вас не с парсингом проблема, а вообще с получением ответа от ардуины. Прежде чем браться за парсинг, просто сохраните то что пришло от ардуины в файлик. И посмотрите что-же там в реальности приплыло.... Кстати на этом файлике и парсер отлаживать будет удобней...
 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

http://192.168.10.123/$0 - WTF?

да и в адресе у Вас не имя файла, а весь тэг "а"

leshak
Offline
Зарегистрирован: 29.09.2011

Кстати наличие знака $-доллара в урле - мягко говоря "странно". Если он там реально есть, если это не выбрыки "форумный движок покоцал урлы" - обратите на это внимание. Ваш вызвыаемый Url - выглядит странновато.

dimss
Offline
Зарегистрирован: 31.07.2014

$ ето знак для ардуино после которого есле чтото приходит он формирует новую страницу с даними, или виполняет действие, например нажимаем на силку 192.168.10.123/$1 включитса релюшка на виводе 5, 0 - ардуино отправляет клиенту дание от датчиков, их я думл парсить на другом сервере и всталять дание на красивую страницу потомушто ардуино нетянет то што я создал)) я так понял для него максимум пару табичек и пару кнопок больше нетянет)) а также парсить их дание в андроид приложение. Вот такя мисль, может ето очень плохой способ нз я только учусь) знак $ бил в примере "управление ардуино силками", там можна и без него а можно и заменить но я так оставил.

а можете дать какието силке как лутше зделать?))

 

dimss
Offline
Зарегистрирован: 31.07.2014

"да и в адресе у Вас не имя файла, а весь тэг "а""

 

я каждие дание поставил в оддельний div

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

file_get_contents('file.php'); - хорошо

file_get_contents('< href="sdsd">sdsds</a>'); - плохо, не будет такого файла

$ - это либо пременная в php, либо данные для $_GET, но тогда должно быть 192.168.10.128/?$

dimss
Offline
Зарегистрирован: 31.07.2014

вот что приходит с ардуино по слке 192.168.10.123/$0 

 

и вот что приходит на ардуино

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

#include <string.h>
 
#include <SPI.h>
#include <Ethernet.h>
#include <RCSwitch.h>
boolean incoming = 0;
RCSwitch mySwitch = RCSwitch();

byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };
IPAddress ip(192,168,10,123); //<<< IP-АДРЕС ВВОДИТЬ СЮДА!!!
 

EthernetServer server(80);
  float t = 0;
  float h =0;
  float t1 = 0;
  float t2 = 0;
  float t3 = 0;
void setup() {
    // запускаем Ethernet соединение и сервер:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
  
  if (mySwitch.available()) {
    float unit = mySwitch.getReceivedValue()- 100000;
    if(unit >= 1000 && unit <= 2000) { h = (unit - 1000) / 10;  };
    if(unit >= 2000 && unit <= 3000) { t = (unit - 2000) / 10;  }; 
    if(unit >= 3000 && unit <= 4000) { t1 = (unit - 3000) / 10; };
    if(unit >= 4000 && unit <= 5000) { t2 = (unit - 4000) / 10; }; 
    if(unit >= 5000 && unit <= 6000) { t3 = (unit - 5000) / 10; }; 

    Serial.println("");
    Serial.print("vologist="); 
    Serial.print(h);
    Serial.println(""); 
    Serial.print("temp=");
    Serial.print(t);
    Serial.println("");
    Serial.print("temp1=");
    Serial.print(t1);
    Serial.println(""); 
    Serial.print("temp2=");
    Serial.print(t2);
    Serial.println(""); 
    Serial.print("temp3=");
    Serial.print(t3);
    Serial.println("");
    
    mySwitch.resetAvailable();
  }
  
    // ожидание подключения клиентов
  EthernetClient client = server.available();
  if (client) {
 //---------------------------------------------------------------------------------
 

        
        //------------------------------------------------------------------------------------------
        
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // Если будет получен символ переноса строки и
    // сама строка при этом пустая, значит
    // HTTP-запрос закончился, можно отвечать
    

 
    // считываем URL с символа "$" до первого пробела
        if(incoming && c == ' '){
          incoming = 0;
        }
        if(c == '$'){
          incoming = 1;
        }
 
        // Определяем что было в URL: $1 или $2
        if(incoming == 1){
          Serial.println(c);
//______________________________________________menuj
          if(c == '0'){
            Serial.println("DAte");
client.println("<!doctype html>");
client.println("<html>");
client.println("<head>");
client.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />");
client.println("<title>DATE</title>");
client.println("</head>");
client.println("<body>");
client.println("<div id='T_tepliza_1'>"); client.println(t); client.println(" </div>");
client.println("<div id='T_Vul'>ddd</div>");
client.println("<div id='T_Dat_1'>"); client.println(t2); client.println("</div>");
client.println("<div id='T_Dat_2'>"); client.println(t3); client.println("</div>");
client.println("<div id='Vologa_1'>"); client.println(h); client.println("</div>");
client.println("<div id='Napruga_1'>"); client.println(0); client.println("</div>");
client.println("</body>");
client.println("</html>");
client.stop();
          }  
 //________________________________________________________
        }
        if (c == '\n') {
          // началась новая строка
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // в текущей строке ещё есть символы
          currentLineIsBlank = false;
        }
      }
    }
    // даём время браузеру для получения данных
    delay(1);
    // закрываем соединение
    client.stop();
}
}

 

dimss
Offline
Зарегистрирован: 31.07.2014

leshak пишет:

А для Php-шного робота "чего попроще...". В том виде в котором "парсить удобней бедет".
Хотите xml

заінтересовало)) попробовал xml действительно проще и удобней, но опять же та ошыбка, тоесть создал пробний файл

<?xml version="1.0" encoding="utf-8"?>
<DATE>
  <temperature>
     <meteost1>ммммм</meteost1>
	 <arduino>12.21</arduino>
  </temperature>
  <vologist>
     <meteost1>ввввв</meteost1>
  </vologist>
</DATE>

и начал его парсить вот так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<body>
<?php
$date =  simplexml_load_file('http://192.168.10.123/A0');
$arduino =  $date->temperature->arduino;
echo $arduino;
?>
</body>
</html>

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

Warning: simplexml_load_file(http://192.168.10.123/A0) [function.simplexml-load-file]: failed to open stream: HTTP request failed! in F:\home\localhost\www\arduino\DATE.php on line 9



Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://192.168.10.123/A0" in F:\home\localhost\www\arduino\DATE.php on line 9



Fatal error: Maximum execution time of 30 seconds exceeded in F:\home\localhost\www\arduino\DATE.php on line 9

прошу помощи.

PS: когда иду по адрису к ардуино (192.168.10.123/А0) то вижу страницу с xml файло, тоесть какби всьо ок должно бить((

вот код ардуино

#include <string.h>
 
#include <SPI.h>
#include <Ethernet.h>

boolean incoming = 0;


byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };
IPAddress ip(192,168,10,123); //<<< IP-АДРЕС ВВОДИТЬ СЮДА!!!
 

EthernetServer server(80);

void setup() {
    // запускаем Ethernet соединение и сервер:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.begin(9600);

}

void loop() {

    // ожидание подключения клиентов
  EthernetClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // Если будет получен символ переноса строки и
    // сама строка при этом пустая, значит
    // HTTP-запрос закончился, можно отвечать
    

 
    // считываем URL с символа "$" до первого пробела
        if(incoming && c == ' '){
          incoming = 0;
        }
        if(c == 'A'){
          incoming = 1;
        }
 
        // Определяем что было в URL: $1 или $2
        if(incoming == 1){
          Serial.println(c);
//______________________________________________menuj
          if(c == '0'){
Serial.println("DAte");
client.println("<?xml version='1.0' encoding='utf-8'?>");
client.println("<DATE>");
client.println("  <temperature>");
client.println("     <meteost1>ммммм</meteost1>");
client.println("	 <arduino>12.21</arduino>");
client.println("  </temperature>");
client.println("  <vologist>");
client.println("     <meteost1>ввввв</meteost1>");
client.println("  </vologist>");
client.println("</DATE>");
client.stop();
          }  
 //________________________________________________________
        }
        if (c == '\n') {
          // началась новая строка
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // в текущей строке ещё есть символы
          currentLineIsBlank = false;
        }
      }
    }
    // даём время браузеру для получения данных
    delay(1);
    // закрываем соединение
    client.stop();
}
}

 

leshak
Offline
Зарегистрирован: 29.09.2011

Во первых

date - число (календарная дата), свидание, деловая встреча
data - данные.

Во вторых... я уже вам говорил: вначале получите данные от ардуины, сохраните в файл. Вы же упорно пытаетесь парсить данные, не решив проблему их получения.
Из php. Это по Php мануалам нужно рыть как внешние данные получать.
Или... буквально в начале недели... по сайту поищите, вы же не пырвый сталкиваетесь с необходимостью читать с помощью php. Буквально три дня назад была тема родственная: majordomo-arduino не получается снять показания | Аппаратная платформа Arduino

Уверен, при желании и еще найти можно...
А еще лучше - на Php-шных сайтах искать ответ. Раз "браузер открыват", а Php-нет, то проблема именно в php-коде. Как-то не так запрос шлет. Вначале не обязательно парсить ответ ардуины. Вначале можно и xml-льку, отдавать тоже с компа... научится ее ПОЛУЧАТЬ.
Или научится получать любую первую попавшуюся страничку из интернета...

 

dimss
Offline
Зарегистрирован: 31.07.2014

извените я может неправильно обяснил, php работает как вы сказали "Вначале можно и xml-льку, отдавать тоже с компа... научится ее ПОЛУЧАТЬ". так вот он получает когда скомпа и обрабативает нормально, а с ардуино нет(

leshak
Offline
Зарегистрирован: 29.09.2011

Я с php не работает, но вот три минуты гугления дают такие направления "копания":
http://php.net/manual/en/function.simplexml-load-file.php

Note:

Libxml 2 unescapes the URI, so if you want to pass e.g. b&c as the URI parameter a, you have to callsimplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Since PHP 5.1.0 you don't need to do this because PHP will do it for you.

 

Или

http://stackoverflow.com/questions/11335187/simplexml-load-file-error-in-php-5-3

ini_set('allow_url_fopen', 'on');

 

или 

$feed ='http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=mytwittername';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $feed);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// get the result of http query
$output = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_file($output);

Вообщем нужно просто задаться целью: "научиться что-то получать с помощью Php". И рыть в этом направлении.. php-шные ресурсы.
Да и вообще, просто учится разбираться с http протоколом.

leshak
Offline
Зарегистрирован: 29.09.2011

dimss пишет:

извените я может неправильно обяснил, php работает как вы сказали "Вначале можно и xml-льку, отдавать тоже с компа... научится ее ПОЛУЧАТЬ". так вот он получает когда скомпа и обрабативает нормально, а с ардуино нет(

Давайте посмотрим что я писал:

leshak пишет:

P.S. А судя по ошибке, похоже у вас не с парсингом проблема, а вообще с получением ответа от ардуины. Прежде чем браться за парсинг, просто сохраните то что пришло от ардуины в файлик. И посмотрите что-же там в реальности приплыло.... Кстати на этом файлике и парсер отлаживать будет удобней...


Вообщем вначале нужно, все-таки "научится с помощью Php получать от ардуины ответ".

А "файлик с компа", можно открывать тоже по разному.
Можно "как локальный файл" (и, действительно, с этого стоит начинать, так как это проще. так что "глупой работы" - вы не сделали).
А можно получать его именно "как веб-ресурс", через апач (или что-там у вас стоит).
Обращаться к нему именно по Http
Как-то так к нему будет выглядеть путь http://localhost/mytestdata/adruinoAnswer1.xml

 

dimss
Offline
Зарегистрирован: 31.07.2014

leshak пишет:

 

Как-то так к нему будет выглядеть путь http://localhost/mytestdata/adruinoAnswer1.xml
 

вот так я к нему и обращаюсь, всьо работает

я так понял php неудаетса записать дание из ардуино в переменную, даже когда иду напрямую по силке к ардуино, в мониторе порта ардуино вижу что он чтото принял, а вслучае запуска скрыпта через денвер я невижу запроса к ардуино

dimss
Offline
Зарегистрирован: 31.07.2014

а может бить что денвер не работает с локальними ip ?? 

leshak
Offline
Зарегистрирован: 29.09.2011

dimss пишет:

leshak пишет:

 

Как-то так к нему будет выглядеть путь http://localhost/mytestdata/adruinoAnswer1.xml
 

вот так я к нему и обращаюсь, всьо работает

Именно в php "так обращаетесь"? Или в браузере?
Если "в php", то....

Все равно вам нужно добиться "получать ответ от ардуины" (я выше давал вам ссылочки где обсуждается подобное). И сохранять в файл. ДО ПАРСИНГА. Просто получить все "как строку". И сохранить в файл. Не анализируя.
Потом "ответ" от 
http://localhost/mytestdata/adruinoAnswer1.xml сохраните в localResponse.txt
А ответ от 
http://192.168.10.123/A0  сохранить в  arduinoResponse.txt

потом открываете оба эти файлика и ищите "в чем между ними разница".

dimss
Offline
Зарегистрирован: 31.07.2014

да действительно денвер неработает с домашней сеттю, извените  за потраченое время, буду искать ришение))

leshak
Offline
Зарегистрирован: 29.09.2011

dimss пишет:

а может бить что денвер не работает с локальними ip ?? 

Если верить вашим словам, что вы файлик получаете как http://localhost/...., то как раз с локальными - все работает. Вы же сказали что получая файлик именно таким образом у вас все работает.
А вот 192.168..... - это уже "внешний", и действительно настройки секьюрности могут помешать  (опять-таки в сообщении #13 была ссылка где и эта версия упоминается. allow_url_fopen)

dimss
Offline
Зарегистрирован: 31.07.2014

спасибо вам за помощ!!))

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

leshak пишет:

А вот 192.168..... - это уже "внешний", и действительно настройки секьюрности могут помешать  (опять-таки в сообщении #13 была ссылка где и эта версия упоминается. allow_url_fopen)

Нда? Все интересней и интересний! И давно 192.168 стало внешней подсетью? Она конечно может быть ДРУГОЙ подсетью, но она все равно зарезервированна для внутрених нужд, также как две других.

leshak
Offline
Зарегистрирован: 29.09.2011

JollyBiber пишет:

Нда? Все интересней и интересний! И давно 192.168 стало внешней подсетью? Она конечно может быть ДРУГОЙ подсетью, но она все равно зарезервированна для внутрених нужд, также как две других.

Контест-то не теряйте. По отношению к текущему компу, любой адресс кроме 127.0.0.NNN это уже ВНЕШНИЙ.
Речь-то шла о разнице между ЛОКАЛЬНЫМ файлом. С ЭТОГО же компа, и получением ресурса с ДРУГОГО.
Вот стоит у меня, скажем какой-то злобный вайервол (прямо на компе).
Который проги не выпускает в интернет, если я буду ему писать разрешительное правило, как оно будет называться? А вот так: outgoing connection. Даже если я буду стучаться на соседний комп. В этой же подсети.
При это, при доступе к 127.0.0.1 - никаких проблем у меня не будет. Так как это ЛОКАЛЬНЫЙ адрес.

Вообщем понятие "внешний/внутренний" это субъективная штука. Такая я же как и скорость. Зависит от где мы сидим.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Вы путаете - 127.0.0.х это просто ДРУГАЯ подсеть. Вот ведь как, у меня локальный хост на 192.168.2.1

Если ТС без всяческих изменений накатил XAMP, то у него наверняка будет 127.0.0.1, но и от этого 192. не станет внешней.

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

leshak
Offline
Зарегистрирован: 29.09.2011

JollyBiber пишет:

Вы путаете - 127.0.0.х это просто ДРУГАЯ подсеть. Вот ведь как, у меня локальный хост на 192.168.2.1

Да. 192.168.2.1 у вас тоже будет "локальным". Потому что этот "этот же компьютер". И большинство политик секьюрити, по дефолту, будут разрешать доступ к нему.
А вот на другие компы - будет не пускать. По дефолту.
И контекст обсуждения был именно таков. В чем может быть различие между доступом на Localhost, и 192.168.XXX.XXX. Даже если этот комп находится в этой же подсети.
Кстати слово "подсети" - употребили вы первым. А изначально шло про "адресс". Локальный и не локальный.
Хотите - изобретите другой термин.
Или вы хотите сказать что доступ на локальный комп, и на комп в локальной подсети не имеет никаких различий? И говотить что в этом и могла быть причина - не нужно? 
Или различия, все-таки, есть?  А если есть, то откуда они берутся? Вот мой ответ имено в этом и состоит: потому что 192.168.10.123, по отношению к компу на котором является php является ВНЕШНИМ ресурсом. НЕ ЛОКАЛЬНЫМ. Не потому что он 192.168... а потому что это другое устройство. Пусть даже и из этой же подсети. Поэтому с Localhsot он может открывать его спокойно, а с 192.168.10.123 - иметь проблемы.

 

leshak
Offline
Зарегистрирован: 29.09.2011

JollyBiber пишет:

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

Речь шла не про то кто вы можете настроить своим файерволом и как извратиться...,а про то как называются, в принципе эти соединения. Исходящие и входящие (в случае русской винды). Какая терминология используется для их описания.

dimss
Offline
Зарегистрирован: 31.07.2014

всьотаки проблема неищерпана, настроил денвер, тепер к ардуино идет запрос от php, но всьоравно ошибка

Warning: simplexml_load_file(http://192.168.10.123/A0) [function.simplexml-load-file]: failed to open stream: HTTP request failed! <?xml version='1.0' encoding='utf-8'?> in F:\home\192.168.10.239\www\DATA.php on line 9

 

leshak
Offline
Зарегистрирован: 29.09.2011

dimss пишет:

всьотаки проблема неищерпана, настроил денвер, тепер к ардуино идет запрос от php, но всьоравно ошибка

Warning: simplexml_load_file(http://192.168.10.123/A0) [function.simplexml-load-file]: failed to open stream: HTTP request failed! <?xml version='1.0' encoding='utf-8'?> in F:\home\192.168.10.239\www\DATA.php on line 9

 

Перечитайте сообщение №17

Почему, судя по ошибке, вы пытаетесть загрузить с помощью simpletexml-load-file?

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

leshak пишет:

Речь шла не про то кто вы можете настроить своим файерволом и как извратиться...,а про то как называются, в принципе эти соединения. Исходящие и входящие (в случае русской винды). Какая терминология используется для их описания.

Ага, у меня значит это "извращения", а у Вас файервол с зачатками разума и сам настраивается?

leshak пишет:

В чем может быть различие между доступом на Localhost, и 192.168.XXX.XXX. Даже если этот комп находится в этой же подсети.
Кстати слово "подсети" - употребили вы первым. А изначально шло про "адресс". Локальный и не локальный.
Хотите - изобретите другой термин.

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

leshak
Offline
Зарегистрирован: 29.09.2011

JollyBiber пишет:

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

Ну так раскажите, со своим авторитетом как правильно называть.
Только не нужно про "классы сетей".  Еще раз:

Кстати слово "подсети" - употребили вы первым. А изначально шло про "адресс". Локальный и не локальный.

Дайте свою терминологию. Я действительно в сетях "поверхностно". согласен. ровно на уровне "решить текущую проблему и забыть". не админ. девелопер, но... по опыту знаю, что открывать http://localhost и http://какой-то комп  (пусть даже и в локальной сетке) - довольно часто бывают "два разных анекдота". И часто по дефолту, секьюрность ничего не имеет против localhost, 127.0.0.1 и проч. IP шники, которые навешены на локальный комп, но не пускает на любой внешний IP. Который не "текущий комп". Вот про эту мысль я и пытался сообщить. Что на профильных форумах нужно помотреть как настраивать секуьюрность для того что-бы иметь взможность "получить что-то снаружи" (снаружи компа!!!!)
Ну вот я их называют "внешний" (по отношению к текущему). Просто потому что когда в Outpost-те, или виндовом файерволе привык что в случае подобных проблем я настраиваю правила именно для входящих и исходящих соединений. И когда включаю их в режим "обучения", то мне выскакивает алерт типа "программа запрашивает ИСХОДЯЩИЕ соединине, разрешить?" даже когда я стучусь на 192.168.0.0
Есть более правильный термин?  OK. Назовите.
Только не нужно опять про "подсети" начинать. Дайте название двум IP-шникам. Что-бы их можно было различить в контектсе текущей проблемы.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

:D

Объясняю:

192.168.2.1 - IP

192.168.2.XXX - подсеть, мать её! Как бы Вас это не раздражало :)

так же как 192.168.ХХХ.ХХХ и 192.ХХХ.ХХХ.ХХХ

Второй возможностью описания подсети является завершающий ноль: 192.168.2.0

это стандартные обозначения. Если я напишу что у меня потребление бойлера 1,5тВ и буду подразумевать что это  1,5 тысячи Ватт что Вы мне ответите?

127.0.0.1 — это адрес локального компьютера. Он используется для тестирования сетевых программ и взаимодействия сетевых процессов. При попытке отправить пакет по этому адресу данные не передаются по сети, а возвращаются протоколам верхних уровней, как только что принятые. При этом образуется как бы «петля» - loopback. В IP-сети запрещается использовать IP-адреса, которые начинаются со 127. Любой адрес подсети 127.ХХХ.ХХХ.ХХХ относится к локальному компьютеру.

Существует также специальные адреса, которые зарезервированы для несвязанных локальных сетей — это сети, которые используют протокол IP, но не подключены к Интернет. Вот эти адреса:

10.0.0.0 (сеть класса А, маска сети 255.0.0.0) 172.16.0.0 — 172.31.0.0 (16 сетей класса В, маска каждой сети 255.255.0.0) 192.168.0.0 —- 192.168.255.0 (256 сетей класса С, маска каждой сети 255.255.255.0)

leshak
Offline
Зарегистрирован: 29.09.2011

То что существуют подсети... и для них есть название... и классы... совсем не означает что "про них обязательно нужно упоминать в любом разговоре". И использовать именно термины сетей.

Вы не поленились, подробно расписали про сети. Но... на сам вопрос - вы так и не ответили. Как называть IP-шники?

Ну попробую еще раз, на примерах.
На компе у меня крутиться процесс.

ipconfig /all

говорит что у него есть такие адреса:
10.14.6.114
192.168.1.151
192.168.56.1

Процесс что-то пытается "достать по http".
Если он делает обращение на адреса
"192.168.1.151","192.168.56.1","10.14.6.114","127.0.0.1"  - все замечательно, на дефолтных настройках.

если же он пытается обратиться к 192.168.1.150 - уже облом. И к 8.8.8.8 - тоже, и к 192.168.1.10 - тоже не проходит. "Что-то мешает".

То есть у меня есть два множества IP-шников. "с которыми работает" и "с которыми не работает". Что-бы решить проблему я пытаюсь понять "в чем между ними разница". И для этого, естественно, я пытаюсь как-то их обозвать. Каждое множество - своим термином.

Я заметил, что те адреса с которыми работает, все принадлежат тому-же компу с которого запускается процесс. Поэтому их я назвал "локальные". Все остальные - не является адресом компа на котором выполняется процесс. Поэтому их я назвал "внешние". Адреса, а не подсети!!!  Они принадлежать к разным подсетям. К связанным и не связанным. Но назвать их мне нужно одним словом.
 

Ну или так:
Дано: комп с адрессом 192.168.1.150. на нем крутиться процесс.
ардуина с адресом 192.168.1.10

Как вы назовете, по отношению к процессу, адресс 192.168.1.150?  А адресс 192.168.10?

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

IP это IP, от Вашего желания называть это по своему ясности для ТС не прибавится.

при маске 255.255.255.0 - назову "пофигу" потому как они в одной подсети ))))

я искренне верю что в самом последнем адресе неумышленно "1" упустили. Иначе получится разговор двух глухих. За сим откланиваюсь - Вы так и не ответили на мой вопрос про бойлер мощностью 1,5тВ

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Вы так и не ответили на мой вопрос про бойлер мощностью 1,5тВ

А что тут не понятно, на каждой атомной электростанции такой есть.

leshak
Offline
Зарегистрирован: 29.09.2011

JollyBiber пишет:

IP это IP, от Вашего желания называть это по своему ясности для ТС не прибавится.

А я IP и называю IP. Вопрос в том что IP-тоже разные бывают.
Квартира - это тоже квартира. Только если когда сижу в своей квартире, то это "дом", а все остальное "другие квартиры". "Другие" и в доме, и в райное и проч. И принципиальная отличие что я имею право делать в кватире зависит от этого. От того "моя" она или нет.
А не от того к этом же доме она, или через два квартала от меня.

JollyBiber пишет:

я искренне верю что в самом последнем адресе неумышленно "1" упустили.

Конечно. Тем более на пару строк выше этот же адресс фигурировал в более расширенном примере.
Который вы - проигнорировали.

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

JollyBiber пишет:

Иначе получится разговор двух глухих. За сим откланиваюсь - Вы так и не ответили на мой вопрос про бойлер мощностью 1,5тВ


Конечно глухих, я уж не знаю сколько. Сколько раз я сказал что речь идет про IP-шник, а вы все сети лепите.
А про бойлер, так это, простите, вы привели "анти-пример". Вы проиллюстрировали именно свой подход.
"Если я напишу что у меня потребление бойлера 1,5тВ и буду подразумевать что это  1,5 тысячи Ватт что Вы мне ответите?"

Так вот, я в "бойлерной терминологии". Янаписал про бойлер. На 1.5кВ, а вы тут же начали рассказывать про то как нужно организовывать работу ТЕЦ обслуживающий город миллионник, отправлять читать как грамонтно подстанции организовыать, логистику подвоза топлива и т.п.
И верно вы все, про ТЕЦ рассказываете, только проблема в том, что пробки выбивает у меня в квартире. От бойлера на 1.5кВ. И энциклопедичность на уровне Тепло-Энергетического-Фактультета - мне совершенно, в данном случае, не нужна.

 

Возвращается к баранам, скорее всего нужно будет либо где-то в файерволе просто разрешить для процесса делать исходящие соединения, либо где-то в настройках php сделать какое-нибудь allow_что-то-там=true
Без всяких подсетей, масок, классов сетей и т.п.

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Вот это упертость! Маладца! Комментировать "это" нет желания.

leshak пишет:

Возвращается к баранам, скорее всего нужно будет либо где-то в файерволе просто разрешить для процесса делать исходящие соединения, либо где-то в настройках php сделать какое-нибудь allow_что-то-там=true
Без всяких подсетей, масок, классов сетей и т.п.

Угу. Если не поможет - протирайте монитор, пыль на нем иногда не дает обращаться к адерсу 192.ХХХ.656.ХХХ.