반응형
* C# WebBrowser 컨트롤을 이용한 외부 IP 알아내기 예제...
-사용한 컨트롤 : WebBrowser 1개, Label 1개, Button 1개
전체 소스 코드
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CSharp_외부IP
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string strURL = "http://www.findip.kr/";
//스크립트 오류 무시 하기...
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigate(strURL);
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser1.Document != null)
{
HtmlDocument hdDoc = webBrowser1.Document;
HtmlElementCollection hecArray = hdDoc.GetElementsByTagName("h1");
label1.Text = hecArray[0].OuterHtml;
}
}
}
}
위 소스 코드에 보듯이 외부 사이트에 접속 해서 외부 IP 를 얻어 오는 방법으로 webBrower 컨트롤 로 외부 사이트 접속
-> 사이트 html 을 다운 하여 태그에서 얻어 오는 걸 볼 수 있습니다.
HtmlElementCollection 변수에 바로 배열 인덱스 0 을 쓴 이유는 h1 태그가 하나 밖에 없어서 이며, 혹 h1 태그가 여러개가 되면 for 문 또는 for each 문을 사용하여 사용자가 확인 후 걸러낼 수 있습니다.
아래의 그림처럼 구글 크롬으로 외부 사이트 접속 하여 상단 메뉴에 개발자 도구를 선택. 붉은 테투리 의 h1 태그 이름을
가져 옵니다.
*예제 결과
https://kdsoft-zeros.tistory.com/184
반응형
'C# Programming' 카테고리의 다른 글
[C#] 선택된 프로세스 죽이기 (Kill Process) (0) | 2020.04.13 |
---|---|
[C#] 화면 캡쳐 (Screen Capture) (0) | 2020.04.09 |
[C#] [WMI] USB Detect 예제 (0) | 2020.04.03 |
[C#] [WMI] CPU 클럭 속도 (CurrentClockSpeed) (0) | 2020.04.01 |
[C#] 파일 비교 (File Compare) (0) | 2020.03.30 |