본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - 인터넷 사용 가능 여부 ( 네트워크 / Network / internet / 접속 / TCP / ip / url / 포트 / port)

728x90
반응형


 WPF & C# - 인터넷 사용 가능 여부 ( 네트워크 / Network / internet / 접속 / TCP / ip / url / 포트 / port)


# 인터넷 사용 가능 여부 ( 네트워크 / Network / internet )

 @ MainWindow.xaml


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<Window x:Class="WpfApp3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp3"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button x:Name="btn" Content="인터넷체크" HorizontalAlignment="Left" Height="69" Margin="94,140,0,0" VerticalAlignment="Top" Width="277" Click="btn_Click"/>
        <TextBlock x:Name="tBlock" HorizontalAlignment="Left" Height="69" Margin="94,66,0,0" TextWrapping="Wrap" Text="인터넷 사용 가능여부" VerticalAlignment="Top" Width="277"/>
 
    </Grid>
</Window>
cs




 @ MainWindow.xaml.cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
namespace WpfApp3
{
    /// <summary>
    /// MainWindow.xaml에 대한 상호 작용 논리
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void btn_Click(object sender, RoutedEventArgs e)
        {
            tBlock.Text = NetworkInterface.GetIsNetworkAvailable().ToString();
        }
    }
}
 
cs



@ Memo

 

using System.Net.NetworkInformation; // 을 추가해주고 사용하면 된다.

bool 형식으로 리턴값이 나오니 매우 편리하다.

단, 간간이 끊기는 경우에도 인터넷 연결이 되어 있지 않다고 할 수 있으니 이점 유의해서 프로그래밍하면 될 듯하다.




특정URL 접근 가능여부 확인 ( port / 포트)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System.Windows;
 
// 인터넷 특정 URL 접근 가능여부 확인
bool IsConnectionExists(string TCPClientFile)
{
    try
    {
        using (System.Net.Sockets.TcpClient clnt = new System.Net.Sockets.TcpClient(TCPClientFile, 80))
        {
            return true;
        }
    }
    catch
    {
        return false;
    }
}
 
private void btn_Click(object sender, RoutedEventArgs e)
{
    string ConnectionPath = "ID.cafe24.com";   // 카페24의 경우 하위디렉토리 접근불가함, 이유모름
    MessageBox.Show(IsConnectionExists(ConnectionPath).ToString());
}
cs


728x90
반응형