日常茶飯事

C#으로 GMT적용하다 보면 필요한 데이터 입니다.

작성한김에 올립니다.



MS_TIMEZONE.xls




ID TIMEZONE GMT TIME City
Morocco Standard Time (GMT) Casablanca GMT +00:00 Casablanca
GMT Standard Time (GMT) Greenwich Mean Time : Dublin Edinburgh Lisbon London GMT +00:00 Greenwich Mean Time : Dublin Edinburgh Lisbon London
Greenwich Standard Time (GMT) Monrovia Reykjavik GMT +00:00 Monrovia Reykjavik
W. Europe Standard Time (GMT+01:00) Amsterdam Berlin Bern Rome Stockholm Vienna GMT+01:00 +01:00 Amsterdam Berlin Bern Rome Stockholm Vienna
Central Europe Standard Time (GMT+01:00) Belgrade Bratislava Budapest Ljubljana Prague GMT+01:00 +01:00 Belgrade Bratislava Budapest Ljubljana Prague
Romance Standard Time (GMT+01:00) Brussels Copenhagen Madrid Paris GMT+01:00 +01:00 Brussels Copenhagen Madrid Paris
Central European Standard Time (GMT+01:00) Sarajevo Skopje Warsaw Zagreb GMT+01:00 +01:00 Sarajevo Skopje Warsaw Zagreb
W. Central Africa Standard Time (GMT+01:00) West Central Africa GMT+01:00 +01:00 West Central Africa
Jordan Standard Time (GMT+02:00) Amman GMT+02:00 +02:00 Amman
GTB Standard Time (GMT+02:00) Athens Bucharest Istanbul GMT+02:00 +02:00 Athens Bucharest Istanbul
Middle East Standard Time (GMT+02:00) Beirut GMT+02:00 +02:00 Beirut
Egypt Standard Time (GMT+02:00) Cairo GMT+02:00 +02:00 Cairo
South Africa Standard Time (GMT+02:00) Harare Pretoria GMT+02:00 +02:00 Harare Pretoria
FLE Standard Time (GMT+02:00) Helsinki Kyiv Riga Sofia Tallinn Vilnius GMT+02:00 +02:00 Helsinki Kyiv Riga Sofia Tallinn Vilnius
Israel Standard Time (GMT+02:00) Jerusalem GMT+02:00 +02:00 Jerusalem
E. Europe Standard Time (GMT+02:00) Minsk GMT+02:00 +02:00 Minsk
Namibia Standard Time (GMT+02:00) Windhoek GMT+02:00 +02:00 Windhoek
Arabic Standard Time (GMT+03:00) Baghdad GMT+03:00 +03:00 Baghdad
Arab Standard Time (GMT+03:00) Kuwait Riyadh GMT+03:00 +03:00 Kuwait Riyadh
Russian Standard Time (GMT+03:00) Moscow St. Petersburg Volgograd GMT+03:00 +03:00 Moscow St. Petersburg Volgograd
E. Africa Standard Time (GMT+03:00) Nairobi GMT+03:00 +03:00 Nairobi
Georgian Standard Time (GMT+03:00) Tbilisi GMT+03:00 +03:00 Tbilisi
Iran Standard Time (GMT+03:30) Tehran GMT+03:30 +03:30 Tehran
Arabian Standard Time (GMT+04:00) Abu Dhabi Muscat GMT+04:00 +04:00 Abu Dhabi Muscat
Azerbaijan Standard Time (GMT+04:00) Baku GMT+04:00 +04:00 Baku
Mauritius Standard Time (GMT+04:00) Port Louis GMT+04:00 +04:00 Port Louis
Caucasus Standard Time (GMT+04:00) Yerevan GMT+04:00 +04:00 Yerevan
Afghanistan Standard Time (GMT+04:30) Kabul GMT+04:30 +04:30 Kabul
Ekaterinburg Standard Time (GMT+05:00) Ekaterinburg GMT+05:00 +05:00 Ekaterinburg
Pakistan Standard Time (GMT+05:00) Islamabad Karachi GMT+05:00 +05:00 Islamabad Karachi
West Asia Standard Time (GMT+05:00) Tashkent GMT+05:00 +05:00 Tashkent
India Standard Time (GMT+05:30) Chennai Kolkata Mumbai New Delhi GMT+05:30 +05:30 Chennai Kolkata Mumbai New Delhi
Sri Lanka Standard Time (GMT+05:30) Sri Jayawardenepura GMT+05:30 +05:30 Sri Jayawardenepura
Nepal Standard Time (GMT+05:45) Kathmandu GMT+05:45 +05:45 Kathmandu
N. Central Asia Standard Time (GMT+06:00) Almaty Novosibirsk GMT+06:00 +06:00 Almaty Novosibirsk
Central Asia Standard Time (GMT+06:00) Astana Dhaka GMT+06:00 +06:00 Astana Dhaka
Myanmar Standard Time (GMT+06:30) Yangon (Rangoon) GMT+06:30 +06:30 Yangon (Rangoon)
SE Asia Standard Time (GMT+07:00) Bangkok Hanoi Jakarta GMT+07:00 +07:00 Bangkok Hanoi Jakarta
North Asia Standard Time (GMT+07:00) Krasnoyarsk GMT+07:00 +07:00 Krasnoyarsk
China Standard Time (GMT+08:00) Beijing Chongqing Hong Kong Urumqi GMT+08:00 +08:00 Beijing Chongqing Hong Kong Urumqi
North Asia East Standard Time (GMT+08:00) Irkutsk Ulaan Bataar GMT+08:00 +08:00 Irkutsk Ulaan Bataar
Singapore Standard Time (GMT+08:00) Kuala Lumpur Singapore GMT+08:00 +08:00 Kuala Lumpur Singapore
W. Australia Standard Time (GMT+08:00) Perth GMT+08:00 +08:00 Perth
Taipei Standard Time (GMT+08:00) Taipei GMT+08:00 +08:00 Taipei
Tokyo Standard Time (GMT+09:00) Osaka Sapporo Tokyo GMT+09:00 +09:00 Osaka Sapporo Tokyo
Korea Standard Time (GMT+09:00) Seoul GMT+09:00 +09:00 Seoul
Yakutsk Standard Time (GMT+09:00) Yakutsk GMT+09:00 +09:00 Yakutsk
Cen. Australia Standard Time (GMT+09:30) Adelaide GMT+09:30 +09:30 Adelaide
AUS Central Standard Time (GMT+09:30) Darwin GMT+09:30 +09:30 Darwin
E. Australia Standard Time (GMT+10:00) Brisbane GMT+10:00 +10:00 Brisbane
AUS Eastern Standard Time (GMT+10:00) Canberra Melbourne Sydney GMT+10:00 +10:00 Canberra Melbourne Sydney
West Pacific Standard Time (GMT+10:00) Guam Port Moresby GMT+10:00 +10:00 Guam Port Moresby
Tasmania Standard Time (GMT+10:00) Hobart GMT+10:00 +10:00 Hobart
Vladivostok Standard Time (GMT+10:00) Vladivostok GMT+10:00 +10:00 Vladivostok
Central Pacific Standard Time (GMT+11:00) Magadan Solomon Is. New Caledonia GMT+11:00 +11:00 Magadan Solomon Is. New Caledonia
New Zealand Standard Time (GMT+12:00) Auckland Wellington GMT+12:00 +12:00 Auckland Wellington
Fiji Standard Time (GMT+12:00) Fiji Kamchatka Marshall Is. GMT+12:00 +12:00 Fiji Kamchatka Marshall Is.
Tonga Standard Time (GMT+13:00) Nuku'alofa GMT+13:00 +13:00 Nuku'alofa
Azores Standard Time (GMT-01:00) Azores GMT-01:00 -01:00 Azores
Cape Verde Standard Time (GMT-01:00) Cape Verde Is. GMT-01:00 -01:00 Cape Verde Is.
Mid-Atlantic Standard Time (GMT-02:00) Mid-Atlantic GMT-02:00 -02:00 Mid-Atlantic
E. South America Standard Time (GMT-03:00) Brasilia GMT-03:00 -03:00 Brasilia
Argentina Standard Time (GMT-03:00) Buenos Aires GMT-03:00 -03:00 Buenos Aires
SA Eastern Standard Time (GMT-03:00) Georgetown GMT-03:00 -03:00 Georgetown
Greenland Standard Time (GMT-03:00) Greenland GMT-03:00 -03:00 Greenland
Montevideo Standard Time (GMT-03:00) Montevideo GMT-03:00 -03:00 Montevideo
Newfoundland Standard Time (GMT-03:30) Newfoundland GMT-03:30 -03:30 Newfoundland
Atlantic Standard Time (GMT-04:00) Atlantic Time (Canada) GMT-04:00 -04:00 Atlantic Time (Canada)
SA Western Standard Time (GMT-04:00) La Paz GMT-04:00 -04:00 La Paz
Central Brazilian Standard Time (GMT-04:00) Manaus GMT-04:00 -04:00 Manaus
Pacific SA Standard Time (GMT-04:00) Santiago GMT-04:00 -04:00 Santiago
Venezuela Standard Time (GMT-04:30) Caracas GMT-04:30 -04:30 Caracas
SA Pacific Standard Time (GMT-05:00) Bogota Lima Quito Rio Branco GMT-05:00 -05:00 Bogota Lima Quito Rio Branco
Eastern Standard Time (GMT-05:00) Eastern Time (US & Canada) GMT-05:00 -05:00 Eastern Time (US & Canada)
US Eastern Standard Time (GMT-05:00) Indiana (East) GMT-05:00 -05:00 Indiana (East)
Central America Standard Time (GMT-06:00) Central America GMT-06:00 -06:00 Central America
Central Standard Time (GMT-06:00) Central Time (US & Canada) GMT-06:00 -06:00 Central Time (US & Canada)
Central Standard Time (Mexico) (GMT-06:00) Guadalajara Mexico City Monterrey GMT-06:00 -06:00 Guadalajara Mexico City Monterrey
Canada Central Standard Time (GMT-06:00) Saskatchewan GMT-06:00 -06:00 Saskatchewan
US Mountain Standard Time (GMT-07:00) Arizona GMT-07:00 -07:00 Arizona
Mountain Standard Time (Mexico) (GMT-07:00) Chihuahua La Paz Mazatlan GMT-07:00 -07:00 Chihuahua La Paz Mazatlan
Mountain Standard Time (GMT-07:00) Mountain Time (US & Canada) GMT-07:00 -07:00 Mountain Time (US & Canada)
Pacific Standard Time (GMT-08:00) Pacific Time (US & Canada) GMT-08:00 -08:00 Pacific Time (US & Canada)
Pacific Standard Time (Mexico) (GMT-08:00) Tijuana Baja California GMT-08:00 -08:00 Tijuana Baja California
Alaskan Standard Time (GMT-09:00) Alaska GMT-09:00 -09:00 Alaska
Hawaiian Standard Time (GMT-10:00) Hawaii GMT-10:00 -10:00 Hawaii
Samoa Standard Time (GMT-11:00) Midway Island Samoa GMT-11:00 -11:00 Midway Island Samoa
Dateline Standard Time (GMT-12:00) International Date Line West GMT-12:00 -12:00 International Date Line West


'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +0

이것 저것 개발하다 보면 간단하게 쓸수 있는 서버가 많이 필요합니다.

Server-Client 구조의 간단한 프로그램들이 많이 필요하게 되죠.

이럴때 쓸려고 만든 웹서버 입니다.

웹으로 할때 장점은 워낙 오픈된 웹클라이언트 소스가 많아서 이것들을 가져다 쓸수 있다.

브라우져로도 확인을 할수 있다 정도 겠네요.


샘플소스로 구동한 모습입니다.

소켓 리스닝 하고 있다가 웹형식으로 넘어 오는거 파싱해서 다시 http로 리턴 해주면 됩니다.

대강의 코드는 아래와 같습니다.

제가 설명을 잘못해서 T.T



커스터 마이징해서 쓰시고 싶으시면 아래부분을 수정하시면 됩니다.

[ServerProcess.cs]

ResponseProcess 부분만 잘 수정하시면 됩니다.

Web Request가 같이 넘어 오니 그거 가지고 꿍딱꿍딱 하시면 될것 같구요.

[소스]

neo365.Server.zip

SimpleHttpServer.zip


허접한거라 별내용없기는 한데 --; 참조해서 더 발전시켜 주세요.






'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +2

  • 꾸용꾸용 2016.08.27 02:45 신고

    좋은 정보공유 감사드립니다.

  • 꾸용꾸용 2016.09.03 01:56 신고

    안녕하세요? 일단 웹프로그램에 좋은 시작점을 알려주셔서 감사합니다.
    샘플로 제공해주신 프로그램으로 간단하게 응용 프로그램을 만들고 싶은데 처음하다보니
    어렵네요.

    하고 싶은건 모바일로 접속하면 웹페이지에 간단하게 버튼과 edit박스가 나오고
    edit에 숫자를 입력후 버튼을 누르면 서버에서 이를 처리하고 싶은데
    웹페이지 자체를 못만들겠네요....
    현재 샘플로 제공해주신건 string을 반환하던데
    이걸 html로 만든 폼을 리턴 시킬수 있는지요?

    처음 하다보니 개념이 없습니다. 도움 부탁드립니다.

ASC II Code 

Serial 통신등에서 많이 쓰는 아스키 코드 표입니다.



HEX 십진법 약자 설명 한글설명
0x00 0 NUL Null Character 공백 문자
0x01 1 SOH Start of Header 헤더 시작
0x02 2 STX Start of Text 본문 시작, 헤더 종료
0x03 3 ETX End of Text 본문 종료
0x04 4 EOT End of Transmission 전송 종료, 데이터 링크 초기화
0x05 5 ENQ Enquiry 응답 요구
0x06 6 ACK Acknowledgment 긍정응답
0x07 7 BEL Bell 경고음
0x08 8 BS Backspace 백스페이스
0x09 9 HT Horizontal Tab 수평 탭
0x0A 10 LF Line feed 개행
0x0B 11 VT Vertical Tab 수직 탭
0x0C 12 FF Form feed 다음 페이지
0x0D 13 CR Carriage return 복귀
0x0E 14 SO Shift Out 확장문자 시작
0x0F 15 SI Shift In 확장문자 종료
0x10 16 DLE Data Link Escape 전송 제어 확장
0x11 17 DC1 Device Control 1 장치 제어 1
0x12 18 DC2 Device Control 2 장치 제어 2
0x13 19 DC3 Device Control 3 장치 제어 3
0x14 20 DC4 Device Control 4 장치 제어 4
0x15 21 NAK Negative Acknowledgement 부정응답
0x16 22 SYN Synchronous idle 동기
0x17 23 ETB End of Transmission Block 전송블록 종료
0x18 24 CAN Cancel 무시
0x19 25 EM End of Medium 매체 종료
0x1A 26 SUB Substitute 치환
0x1B 27 ESC Escape 제어기능 추가
0x1C 28 FS File Separator 파일경계 할당
0x1D 29 GS Group Separator 레코드 그룹경계 할당
0x1E 30 RS Record Separator 레코드 경계 할당
0x1F 31 US Unit Separator 장치 경계 할당
0x7F 127 DEL Delete 삭제
0x20 32 Space 공백 문자
0x21 33 !    
0x22 34
"
   
0x23 35 #    
0x24 36 $    
0x25 37 %    
0x26 38 &    
0x27 39 '    
0x28 40 (    
0x29 41 )    
0x2A 42 *    
0x2B 43 +    
0x2C 44 ,    
0x2D 45 -    
0x2E 46 .    
0x2F 47 /    
0x30 48 0    
0x31 49 1    
0x32 50 2    
0x33 51 3    
0x34 52 4    
0x35 53 5    
0x36 54 6    
0x37 55 7    
0x38 56 8    
0x39 57 9    
0x3A 58 :    
0x3B 59 ;    
0x3C 60 <    
0x3D 61 =    
0x3E 62 >    
0x3F 63 ?    
0x40 64 @    
0x41 65 A    
0x42 66 B    
0x43 67 C    
0x44 68 D    
0x45 69 E    
0x46 70 F    
0x47 71 G    
0x48 72 H    
0x49 73 I    
0x4A 74 J    
0x4B 75 K    
0x4C 76 L    
0x4D 77 M    
0x4E 78 N    
0x4F 79 O    
0x50 80 P    
0x51 81 Q    
0x52 82 R    
0x53 83 S    
0x54 84 T    
0x55 85 U    
0x56 86 V    
0x57 87 W    
0x58 88 X    
0x59 89 Y    
0x5A 90 Z    
0x5B 91 [    
0x5C 92 \    
0x5D 93 ]    
0x5E 94 ^    
0x5F 95 _    
0x60 96 `    
0x61 97 a    
0x62 98 b    
0x63 99 c    
0x64 100 d    
0x65 101 e    
0x66 102 f    
0x67 103 g    
0x68 104 h    
0x69 105 i    
0x6A 106 j    
0x6B 107 k    
0x6C 108 l    
0x6D 109 m    
0x6E 110 n    
0x6F 111 o    
0x70 112 p    
0x71 113 q    
0x72 114 r    
0x73 115 s    
0x74 116 t    
0x75 117 u    
0x76 118 v    
0x77 119 w    
0x78 120 x    
0x79 121 y    
0x7A 122 z    
0x7B 123 {    
0x7C 124 |    
0x7D 125 }    
0x7E 126 ~    


'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +0

토렌토 파일은 bencode라는 넘으로 작성되어져 있습니다.

키 + 값길이 : 값 + 키 + 값길이 : 값 ....

이렇게 반복되는 형태의 코드입니다.

예제)  into4:aaaafile5:bbbbb


이넘을 파싱해서 우리가 필요한 정보들을 쏙쏙 뽑아 옵니다.

패키지 정보 : https://github.com/Krusen/BencodeNET

[사용 예제]


그냥 한번 만들어 봤는데 참조 하세요.



'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +0

아래 예제 참조 하세요.

간단합니다. ㅎㅎ

 

public static String getMacAddress(String ipaddress)
{
    String queryStr = "select * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'";
    System.Management.ObjectQuery objectQuery = new System.Management.ObjectQuery(queryStr);
    System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(objectQuery);
    System.Management.ManagementObjectCollection mos = searcher.Get();
    String macAddress = null;

    foreach (System.Management.ManagementObject mo in mos)
    {
 if (Utils.isEmpty(ipaddress))
 {
     macAddress = mo["MACAddress"].ToString();
     break;
 }
 else
 {
     String[] address = (String[])mo["IPAddress"];
     if (ipaddress.Equals(address[0]))
     {
  macAddress = mo["MACAddress"].ToString();
  break;
     }
 }
    }

    return macAddress;
}

public static String getIpAddress(String macaddress)
{
    String queryStr = "select * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'";
    System.Management.ObjectQuery objectQuery = new System.Management.ObjectQuery(queryStr);
    System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(objectQuery);
    System.Management.ManagementObjectCollection mos = searcher.Get();
    String IpAddress = null;

    foreach (System.Management.ManagementObject mo in mos)
    {
 if (Utils.isEmpty(macaddress))
 {
     String[] address = (String[])mo["IPAddress"];
     IpAddress = address[0];
     break;
 }
 else
 {
     String mac = mo["MACAddress"].ToString();
     if (macaddress.Equals(mac))
     {
  String[] address = (String[])mo["IPAddress"];
  IpAddress = address[0];
  break;
     }
 }
    }

    return IpAddress;
}

'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +0

<?
/*
* email_validation.php
*/

class email_validation_class
{
 var $email_regular_expression="^([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~ ])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~ ]+\\.)+[a-zA-Z]{2,4}\$";
 var $timeout=0;
 var $localhost="";
 var $localuser="";
 var $debug=1;

 Function OutputDebug($message)
 {
  echo $message,"<br/>\n";
 }

 Function GetLine($connection)
 {
  for($line="";;)
  {
   if(feof($connection))
    return(0);

   $line.=fgets($connection,100);
   $length=strlen($line);
   if($length>=2
   && substr($line,$length-2,2)=="\r\n")
   {
    $line=substr($line,0,$length-2);

    if($this->debug)
     $this->OutputDebug("< $line");

    return($line);
   }
  }
 }

 Function PutLine($connection,$line)
 {
  if($this->debug)
   $this->OutputDebug("> $line");

  return(fputs($connection,"$line\r\n"));
 }

 Function ValidateEmailAddress($email)
 {
  return(eregi($this->email_regular_expression,$email)!=0);
 }

 Function ValidateEmailHost($email,$hosts=0)
 {
  if(!$this->ValidateEmailAddress($email))
   return(0);

  if(!$this->ValidateMx($email))
   return(0);

  $user=strtok($email,"@");
  $domain=strtok("");

  if(GetMXRR($domain,&$hosts,&$weights))
  {
   $mxhosts=array();

   for($host=0;$host<count($hosts);$host++)
    $mxhosts[$weights[$host]]=$hosts[$host];

   KSort($mxhosts);

   for(Reset($mxhosts),$host=0;$host<count($mxhosts);Next($mxhosts),$host++)
    $hosts[$host]=$mxhosts[Key($mxhosts)];
  }
  else
  {
   $hosts=array();

   if(strcmp(@gethostbyname($domain),$domain)!=0)
    $hosts[]=$domain;
  }
  return(count($hosts)!=0);
 }

 Function VerifyResultLines($connection,$code)
 {
  while(($line=$this->GetLine($connection)))
  {
   if(!strcmp(strtok($line," "),$code))
    return(1);

   if(strcmp(strtok($line,"-"),$code))
    return(0);
  }
  return(-1);
 }

 Function ValidateEmailBox($email)
 {
  if(!$this->ValidateEmailHost($email,&$hosts))
   return(0);

  if(!strcmp($localhost=$this->localhost,"")
   && !strcmp($localhost=getenv("SERVER_NAME"),"")
   && !strcmp($localhost=getenv("HOST"),""))
   $localhost="localhost";
  }
  if(!strcmp($localuser=$this->localuser,"")
   && !strcmp($localuser=getenv("USERNAME"),"")
   && !strcmp($localuser=getenv("USER"),"")) {
   $localuser="root";
  }

  for($host=0;$host<count($hosts);$host++)
  {
   if($this->debug)
    $this->OutputDebug("Connecting to host \"".$hosts[$host]."\"...");

   if(($connection=($this->timeout ? fsockopen($hosts[$host],25,&$errno,&$error,$this->timeout) : fsockopen($hosts[$host],25))))
   {
    if($this->debug)
     $this->OutputDebug("Connected.");

    if($this->VerifyResultLines($connection,"220")>0
     && $this->PutLine($connection,"HELO $localhost")
     && $this->VerifyResultLines($connection,"250")>0
     && $this->PutLine($connection,"MAIL FROM: <$localuser@$localhost>")
     && $this->VerifyResultLines($connection,"250")>0
     && $this->PutLine($connection,"RCPT TO: <$email>")
     && ($result=$this->VerifyResultLines($connection,"250"))>=0)
    {
     if($this->debug)
      $this->OutputDebug("This host states that the address is ".($result ? "" : "not ")."valid.");

     fclose($connection);

     if($this->debug)
      $this->OutputDebug("Disconnected.");

     return($result);
    }
   
    if($this->debug)
     $this->OutputDebug("Unable to validate the address with this host.");

    fclose($connection);
   
    if($this->debug)
     $this->OutputDebug("Disconnected.");
   }
   else
   {
    if($this->debug)
     $this->OutputDebug("Failed.");
   }

  }
  return(-1);
 }

 function ValidateMx($email) {
  list($user, $host) = explode("@", $email);

  if($this->debug) {
   $this->OutputDebug("DNS Check.....");
   $this->OutputDebug("checkdnsrr...MX : ".(checkdnsrr($host, "MX") ? "Pass" : "Error!! "));
   $this->OutputDebug("checkdnsrr...A : ".(checkdnsrr($host, "A") ? "Pass" : "Error!! "));
  }

  if (!checkdnsrr($host, "MX"))
  {
   return false;
  }

  if (!checkdnsrr($host, "A")) {
   return false;
  }

  if($this->debug) {
   $this->OutputDebug("Mail Check.....");
  }

  return true;
 }
};

?>

=================================================================

<HTML>
<HEAD>
<TITLE>이메일 실제 존재여부 검사기</TITLE>
</HEAD>
<BODY>
<H1><CENTER>이메일 실제 존재여부 검사기</CENTER></H1>
<HR>
<?

 require("email_validation.php");

 $validator=new email_validation_class;
 $validator->timeout=10;

 if(IsSet($email)
 && strcmp($email,""))
 {
  if(($result=$validator->ValidateEmailBox($email))<0) {
  echo "<H2><CENTER><TT>$email</TT>존재하지 않는 Email</CENTER></H2>\n";
  }
  else
  {
   echo "<H2><CENTER><TT>$email</TT>".($result ? "은 존재하는 이메일입니다." : "은 존재하지 않는 이메일입니다.")."</CENTER></H2>\n";
  }
 }
 else
 {
  $port=(strcmp($port=getenv("SERVER_PORT"),"") ? intval($port) : 80);
  $site="http://".(strcmp($site=getenv("SERVER_NAME"),"") ? $site : "localhost").($port==80 ? "" : ":".$port).$PHP_SELF;
  echo "<H2>URL을 다음과 같이 입력하세요.: $site?email=<TT>your@test.email.here</TT></H2>\n";
  echo "<H2>아니면 아래의 입력폼을 이용하셔도 됩니다.</H2>\n";
  echo "서버에 이메일이 실재로 존재하는지를 검사합니다.\n";
 }
?>
<HR>
<form name="asd" method="get">
<input type="text" name="email" />
<input type="submit" value="이메일 존재여부 검사" />
</form>
</BODY>
</HTML>

=======================================================================

[참고]

이 제품은 모든 메일서버의 사용자 사서함을 확인할 수는 없습니다. 다양한 메일환경설정에 따라  특정 메일서버에서는 사용자의 사서함 유무에 대해 일차적인 확인절차를 생략하는 경우가 있습니다. 그러나, 대부분의 고객 이메일정보 중 적정수준 이상의 검증 효과를 가질 수 있어 고객관리비용의 절감효과를 가져 올 수 있습니다.

****************************************

테스트 해본결과 아무리 못해도  http://www.dextsolution.com/Product/dextEmail01.aspx

이정도 수준은 충분히 나옵니다.

비용절감한번 해봐용~
 


유용히 쓰시기를..

'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +0