ASP.NET (C#) 웹 응용 프로그램에서는 방문자 PC의 IP를 쉽게 얻을 수 있지만 ASP.NET 웹 응용 프로그램에서 방문자 PC의 MAC 주소를 얻는 방법은 무엇입니까?ASP.NET 웹 애플리케이션에서 방문자 PC의 MAC 주소를 얻는 방법은 무엇입니까?
그리고이 ASP.NET 응용 프로그램은 회사 내부의 인트라넷에서 실행되며 방문객은 회사의 동일한 인트라넷에도 있습니다.
ASP.NET (C#) 웹 응용 프로그램에서는 방문자 PC의 IP를 쉽게 얻을 수 있지만 ASP.NET 웹 응용 프로그램에서 방문자 PC의 MAC 주소를 얻는 방법은 무엇입니까?ASP.NET 웹 애플리케이션에서 방문자 PC의 MAC 주소를 얻는 방법은 무엇입니까?
그리고이 ASP.NET 응용 프로그램은 회사 내부의 인트라넷에서 실행되며 방문객은 회사의 동일한 인트라넷에도 있습니다.
MAC 주소는 IP header (또는 위의 다른 프로토콜)의 일부가 아니므로 HTTP 트래픽 만 표시되면 사용할 수 없습니다.
EDIT (OP 업데이트 후) : 클라이언트와 서버가 동일한 내부 네트워크에 있으므로 MAC 주소 대신 IP 주소에서 호스트 이름을 얻는 것이 더 좋지 않습니까? IP 주소를 기반으로 호스트 이름을 쉽게 찾을 수 있습니다.
특히 MAC 주소는 사용자와 사용자 사이의 첫 번째 라우터를 넘어서 유용하지 않습니다 (네트워크 통신이 진행되는 한). –
왜 downvote? –
@ -1 : * 사용할 수 있기 때문에 IP 헤더의 일부가 아니라고 말하는 것이 조금 무관합니다. 물리적 주소 지정이 살아있는 곳이 아니기 때문입니다.그것은 CPU 레지스터에있는 것이 Windows API의 일부가 아니라는 것을 말하는 것과 같기 때문에 사용할 수 없습니다 .... –
당신은 쉽게 이것을 할 수 없습니다. 은 MAC 주소와 IP 주소 사이의 변환을 허용하는 ARP와 같은 프로토콜입니다. 그러나이 트래픽은 일반적으로 방화벽 뒤에 있기 때문에 공개 웹 사이트에서는 사용할 수 없습니다.
인트라넷에서는 ASP.NET을 통해서가 아니라 무언가를 할 수 있습니다. 이 정보를 수집하려면 다른 메커니즘을 사용해야하지만 일반적으로 이러한 도구 (예 : 패킷 스니퍼)는 개발자가 사용할 수 없으며 기업의 IS 정책에 위배 될 수 있습니다.
즉시 생각해 볼 수있는 대답은 사용자를 대신하여이 정보를 얻기 위해 클라이언트 브라우저에서 실행되는 ActiveX 컨트롤을 작성하는 경우에만 가능하다는 것입니다. 반면에 자바 스크립트가 정보를 얻을 COM 객체를 인스턴스화 할 수 있다면 클라이언트에서 JavaScript로 가능할 수 있습니다. 내가 생각할 수있는 또 다른 유일한 방법은 IP가 캡처되면 ARP 요청을 수행하는 Windows 서비스입니다.
동일한 서브넷에 있으므로 웹 서버의 ARP 테이블을 얻으려면 P/InvokeGetIpNetTable을 사용할 수 있습니다. 이 작업을 실시간으로 수행하면 추가 작업이 필요하지 않습니다. 클라이언트와 대화 중이므로 ARP 정보를 얻게됩니다. 그렇지 않으면 ARP 요청이나 일부 IP 트래픽 (예 : ap ing)을 캐시에 저장해야하며 DHCP 및 기타 네트워크 변경 (시스템이 꺼져있는 것처럼)으로 인해 가능하다는 점에 유의해야합니다 MAC에서 나중에 MAC로 변환하면 다른 대답이 생깁니다.
외부 클라이언트 (예 : 라우터의 모든 클라이언트)는 table에 나타나지 않으므로이를 처리 할 수도 있습니다. 어떤 이유로 MAC을 필요로하는 경우 기술적으로 라우터의 MAC입니다.
같은 인트라넷에 있다고해도 MAC에 액세스 할 수 있음을 보장하지 않습니다. 동일한 네트워크 세그먼트에 있어야합니다 (용어가 확실하지 않습니다). 이는 서버와 클라이언트 사이에 라우터가 없음을 의미합니다. 소규모 네트워크 (또는 설정이 제대로되지 않은 네트워크)를 사용하는 경우가 아니면 그렇지 않을 수 있습니다. –
MAC 주소는 IP 주소와 달리 스푸핑 될 수 있으며 어떤 보안 양식에도 사용되어서는 안됩니다. – UnkwnTech
예, 웹 서버와 클라이언트 PC는 우리 회사의 동일한 네트워크에서 동일한 라우터를 사용합니다. – Mike108