2015. 11. 24. 16:30ㆍIT-개발/winapi 및 MFC
RAW socket 을 생성해서 ping 을 보내는 프로그램을 만들고 있는데...
sockRaw = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0, WSA_FLAG_OVERLAPPED);
if(sockRaw == INVALID_SOCKET)
아래 Error 값이 자꾸 Return 됩니다.
생각해보니 당연한 요구인거 같네요. RAW socket 같은 통신상에 다양한 통신 Packet을 만들수 있는 권한은 당연히
관리자에게만 주어야 겠다고 생각듭니다.
근데, 요기(https://www.nsoftware.com/kb/xml/06170408.rst)에 보면, Registry 변경으로도 가능하다고 하네요.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Afd\Parameters에
DisableRawSecurity : DWORD 1 지정하면 관리자 권한 아니여도 raw socket 생성가능하다고 하네요.
물론 재부팅해야 되구요..
근데 HKEY_LOCAL_MACHINE 에 값쓰려면 관리자 권한이 있어야 하는데~ ㅠㅠ.. 한마디로
관리자 권한으로 해라는 거죠~~ ㅠㅠ
근데~ 참 웃긴게, 이게 제 개발 PC에서는 Asinvoker 인데도 error 가 않나고. Test PC에서는 이렇게 나네요~
어쨌든, Clean PC에서 않되니~ 않되는 걸로 판단~
아~~ 삽질은 언제쯤 끝날지...
참~ 혹시 관리자 권한 일때와 아닐때의 차이점 비교해놓은거 정리해놓은 site 있으면 답글좀 부탁드려요~ㅠㅠ
니가 구글링해라~ 이러지 마시고~
사랑합니다~^^
'IT-개발 > winapi 및 MFC' 카테고리의 다른 글
(펌) 현재 프로세스의 권한과 상관없이 자식 프로세스를 관리자 또는 일반 사용자 권한으로 실행하기 (0) | 2016.03.06 |
---|---|
CListCtrl 유용한 것들 (펌) (0) | 2016.01.19 |
CComboBox dynamic 생성 / AddString (0) | 2015.11.18 |
CStatic ...이리저리사용하기 (1) (0) | 2015.10.02 |
OutputDebugString - 잘쓰기 (펌) (0) | 2015.09.30 |