에.. 이번강좌는 IP주소에 대해서 알아보도록 하겠습니다. (가뜩이나 할 짓 없는 놈이 허접강좌로 도배하는 듯 해서 죄송.. )
-잠깐타임!
IP란? [Information provider](Information = 정보 ,provider = 공급자, 준비자, 설비자)의 약자로서 정확한 뜻은 정보를 수집 가공하여 통신망을 통해 고객에게 제공하는 사람 또는 기관. 이란 뜻입니다.(간략하게)
허나! 여기서의 IP주소는 이뜻이 아니라 [internet protocol address] 의 약자입니다. 간략한 뜻을 말하자면 'TCP/IP 프로토콜을 사용하여 통신을 할 경우 송신자와 수신자를 구별하기 위한 주소.' 입니다.
자 이제 본격적으로 IP주소에 대해서 알아봅시다. IP 주소는 통신망의 크기, 즉 통신망에 연결되는 컴퓨터의 수에 따라 A, B, C 3등급으로 구분합니다.(다른 등급도 있지만)
이는 통신망 주소를 나타내는 부분과 그 통신망에 연결되는 컴퓨터의 주소를 나타내는 부분의 비트 수에 따라 구분하는데
①A 등급은 7비트의 통신망 주소와 24비트의 컴퓨터 주소로 이루어져 있으며 컴퓨터가 매우 많이 연결되어 있는 통신망에서 사용합니다. ②B 등급은 14비트의 통신망 주소와 16비트의 컴퓨터 주소로 이루어져 있습니다. ③C 등급은 21비트의 통신망 주소와 8비트의 컴퓨터 주소로 이루어져 있어 규모는 적으나 숫자가 많은 통신망들을 관리할 때에 사용한다. 이 정도까지만 알아두셔도 좋은데요. (그냥 IP주소는 3개 등급으로 나뉘어져 있다고 생각하시는 것이 좋을 듯 합니다.)
ETC : 이 이외에도 멀티캐스트를 위해 D 등급을 따로 정의하고 있는데, 전체 32비트의 주소 중 처음 4개의 비트는 1110으로 설정되어 있고 나머지 비트는 멀티캐스트 그룹을 식별하기 위하여 설정하고 있다.
IP 주소는 인터넷과 연결해 주는 서비스를 하고 있는 사업체에서 할당해 주고 있으나, 사실은 한국인터넷정보센터(KRNIC) 나아가서는 아시아태평양 인터넷 정보센터(APNIC)의 협조와 관리 아래서 최종 사용자에게 할당되고 있는 것이다. 놀랍죠?
IP주소의 각등급별 IP주소들을 보시자면
00001010 00000000 00000000 00000000 = 10.0.0.0 = A 등급 => net-id 10 10000000 00000011 00000010 00000011 = 128.3.2.3 = B 등급 => net-id 128.3 11000000 00000000 00000001 00000111 = 192.0.1.7 = C 등급 => net-id 192.0.1 11100000 00000010 00000011 00000001 = 224.2.3.1 = D 등급 => multicast-id 2.3.1 2진법 표기가 내부에서 기억되는 내용이고, 4종류의 10진수가 사용시 표기하는 내용이며, net-id는 통신망 주소를 의미한다.
대부분 가정집에서는 192.~.~.~로 할당되죠. 3등급.. (이모티콘 못 쓰는 것이..)
그럼 본론으로 비베에서 자신의 IP주소는 어떻게 알아낼 수 있을까요? 먼저 가장간단한 방법이라고 하시는데.. 프로젝트-속성-마이크로소프트 윈속컨트롤을 사용해서 간단하게 Label1.Caption = Winsock1.LocalIP '컴퓨터의 IP읽어냄 이런 식으로 알 수 있죠? 그렇죠?
윈속 나는 만들기 싫다 하시는 분들은 Set함수를 사용해서 코드로 윈속만들고 하시면 됩니다.
다른 방법으로는 모듈로 하시는 방법이 있습니다.(모듈은 하뱅에서 검색해보시면 충분히 많이 나옵니다. API??)
하지만! 이런 방법들로 하면 공유기같은 라우터를 통과하게 되면 공인IP가 나오지 않고 공유기가 지정한 private ip, 즉 사설아이피가 나오게 됩니다.
비베에서는 이문제를 풀 방법(즉 사설아이피가 안나오고 고유된 아이피주소가 나오게 끔..)이 저는 없다고 봅니다만.. 비베에서는 꼼수라는 강력한 무기가 있습니다. (꼼수면 어때? 되기만 하면 되는거지..오티엘) 웹에서는 가능합니다. 예로 Html을 제외한 PHP,ASP 같은 것으로 가능합니다.
즉, 웹에서는 공인IP가 나오게 할 수 있습니다.
PHP는 간단하게 echo"$REMOTE_ADDR"; 로 공인IP를 볼수있고, ASP또한 간단하게 response.write Request.ServerVariables("REMOTE_ADDR") 로 공인IP를 볼수있습니다.
하지만 중요한 것은 이를 자신의 홈페이지에서 올릴 때 자신의 홈페이지 계정이 Mysql로 PHP등을 지원해 주어야 합니다.
자 준비완료되었다.. 하시면..
비베코드로 제 수법으로.. 마이크로소프트 Inet컨트롤 하나 만들고.. ip라는 변수 선언하시고 ip = Inet1.OpenURL("아이피를 알아보는 PHP or ASP파일이 있는 웹주소") 이런 식으로 해당 웹에서 아이피정보를 받아와서 ip변수에다가 값을 저장하게 되죠. 다음으로 msgbox ip & " 입니다.",,"아이피" 코드를 붙여주시면 자신의 공인Ip가 나오게 됩니다.
첫댓글 예제좀 있었으면 좋겟어요ㅠㅠ초보한태는..
Dim ip
ip = Inet1.OpenURL("아이피를 알아보는 PHP or ASP파일이 있는 웹주소")
MsgBox ip & " 입니다.", , "아이피"
하니까 안되던데요 ?
ㄴ 주소를 잘못 쓰셧겟죠.
욜라 힘들다