2017-01-07 8 views
0

내 목표는 WLAN에서 장치를 원격 제어하는 ​​것입니다. 이 장치에는이 무선 네트워크 (IP, 마스크, 게이트웨이, DNS)를 구성 할 수있는 소프트웨어가 있습니다. 이 장치와 컴퓨터를 공용 네트워크에 연결할 수 있습니다. 두 컴퓨터가 같은 네트워크를 공유하기 때문에 나는 그들 사이에 소켓을 열 수 있다고 가정했다.파이썬의 '소켓'모듈을 사용하여 무선 이더넷 호스트에 연결할 수 있습니까?

import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('192.168.xxx.xxx', XXXX))

(나는 맥 OS 10.11.6에 파이썬 2.7을 사용하고 있습니다) : 나는 단지 시간 제한을받을, 다음 코드를 사용하여 원격으로 제어하려고 시도하고있는 장치의 IP와 포트를 알고 내가 연결 한 네트워크가 내 장치에 할당 한 IP와 다른 서브넷에 있습니다. 나는 또한 내 네트워크와 같은 서브넷에 IP를 가지고 이것을 시도했다. 소켓을 열지 못하게하는 여러 가지 일이있을 수 있습니다. 그게 내가 진짜로하는 것이 아니다. 내 질문의 핵심은 파이썬의 '소켓'모듈을 사용하여 무선으로 장치에 연결할 수 있는지 여부입니다.

+0

'socket' 모듈은 두 기계 모두 소켓을 열도록 요구합니다. 서버 및 클라이언트. –

+0

연결을 수신하는 프로그램이 있습니까? – Natecat

+1

무선 연결 여부는 중요하지 않으므로 소켓 연결 요청을 받아들이는 무언가가 상대방에 있다고 가정하여 수행 할 수 있어야합니다. – birryree

답변

0

가능합니다.

무선 장치에 연결하려고하면 시간 초과가 발생합니다. 이 문제를 해결하기 위해 취할 수있는 몇 가지 단계가 있습니다.

장치에 연결하려는 포트를 수신하는 프로그램이 실행되고 있는지 확인하십시오. 장치가 일반적으로 ICMP 패킷에 응답 할 수 있는지 확인하고 특히 핑할 수 있는지 확인하십시오. 장치에 ping을 시도하십시오. ping이 성공하면 기본 연결이 설정되고 문제는 OSI 스택의 어느 곳에서 더 높다는 것을 의미합니다.

- 장치에 대해 ping을 수행 할 수 있습니다. 문제가 TCP/IP 스택의 TCP 또는 응용 프로그램 계층에있는 것입니다. 컴퓨터, 장치 및 중간 네트워킹 장치가 특정 호스트 및 포트에 대한 TCP 연결을 허용하는지 확인하십시오. 그런 다음 응용 프로그램과 장치 소프트웨어로 진행하십시오. 질문에 코드를 추가하거나, 스택 추적을 게시하거나, 다른 스택 추적을 요청하십시오.

- 장치를 ping 할 수 없습니다. - 좋습니다. 장치 사이에는 아무런 연결이 없으며 이유를 식별해야합니다.

) 네트워크 다이어그램을 그립니다. 얼마나 많은 중간 네트워크 장치가 컴퓨터와 장치 사이에 배치됩니까? 라우터, 스위치는 무엇입니까? (경우에 따라 가정용 무선 랜 모뎀은 라우터입니다.) 인터넷을 통해 IP 데이터 그램을 전송하는 방법에 대한 아이디어를 얻으십시오.

2) 당신은이 장치를 사용하여 IP 네트워크를 구성 할 수 있다고 말했습니까? 적어도 문제 해결을 위해이 옵션을 무시하고 정적 IP 또는 라우터의 DHCP 서버에 의존합니다. 기존 DHCP를 사용하면 IP가 잘못 구성되지 않습니다.

3) 보유하고있는 모든 장치의 라우팅 테이블을 검토하십시오. 그들은 적절한 기본 게이트웨이가 있습니까? 라우터가 패킷을 장치로 전달하는 방법을 알고 있습니까? 컴퓨터와 장치가 동일한 서브넷에 있지만 다른 네트워크 인터페이스에 연결된 경우 문제가 발생할 수 있습니다. 필요한 경우 두 개의 서브넷으로 네트워크를 분할하고 라우터에서 고정 된 경로를 설정하십시오.

wireshark를 사용하여 보내는 데이터가 컴퓨터를 떠나거나 일부 불쾌한 방화벽으로 바로 떨어 뜨린 지 확인할 수도 있습니다.

LAN 작동에 많은주의가 있습니다.이 간단한 단계가 도움이되지 않거나 큰 문제가있는 경우 networking.stackexchange에 대한 질문을 할 수 있습니다. 또는 여기에 의견을 남겨 주시면 기꺼이 도와 드리겠습니다.