Help
RSS
API
Feed
Maltego
Contact
Domain > gogiyo.com
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
Whois
Property
Value
Email
apkaren@naver.com
NameServer
NS2.WEB2002.NET
Created
2002-05-18 00:00:00
Changed
2015-05-18 00:00:00
Expires
2018-05-18 00:00:00
Registrar
GABIA, INC.
DNS Resolutions
Date
IP Address
2024-09-20
3.36.7.129
(
ClassC
)
Port 80
HTTP/1.1 200 Date: Fri, 20 Sep 2024 13:24:38 GMTContent-Type: text/html;charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveServer: nginx/1.24.0 (Ubuntu)Content-Language: en !DOCTYPE html>html>head> meta charsetUTF-8> title>한국 축산물 정보 지도/title> style> #loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(255, 255, 255, 0.8); padding: 20px; border-radius: 5px; display: none; } #tooltip { position: absolute; background: white; border: 1px solid #ccc; padding: 5px; border-radius: 3px; display: none; z-index: 1000; } #info-panel { position: absolute; top: 10px; right: 10px; width: 300px; background: white; padding: 10px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.1); } .area-label { background: white; padding: 2px 5px; border-radius: 3px; border: 1px solid #ccc; font-size: 12px; } #controls { position: absolute; top: 10px; left: 10px; z-index: 1000; background-color: white; padding: 10px; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); } #map-container { position: relative; width: 100%; height: 800px; } #map { width: 100%; height: 100%; } #summary { position: absolute; background: white; padding: 5px; border-radius: 3px; box-shadow: 0 0 5px rgba(0,0,0,0.1); display: none; } /style>/head>body>div idcontrols> div> label>input typeradio namelivestock value411 checked> 소/label> label>input typeradio namelivestock value412> 돼지/label> label>input typeradio namelivestock value413> 닭/label> /div> div> input typedate iddate-picker> button idweek-ago>1주일 전/button> button idmonth-ago>1달 전/button> button idyear-ago>1년 전/button> /div>/div>div idmap-container> div idmap>/div> div idloading>데이터 로딩 중.../div> div idtooltip>/div> div idinfo-panel>/div>/div>div idsummary>/div>script srchttps://code.jquery.com/jquery-3.6.0.min.js>/script>script typetext/javascript src//dapi.kakao.com/v2/maps/sdk.js?appkey9b414f66f932264b589c396ddc77f435>/script>script> /*!CDATA*/ let map, customOverlay; let areas ; let currentItemCode 411; // 기본값: 소 let currentDate new Date(); currentDate.setDate(currentDate.getDate() - 1); // 기본값을 하루 전으로 설정 let currentlySelectedArea; // 색상 스케일 정의 (예: 가격에 따른 색상) const colorScale { threshold: 10000, color: #FFEDA0 }, { threshold: 20000, color: #FEB24C }, { threshold: 30000, color: #F03B20 } ; // 폴리곤 저장을 위한 객체 const polygons {}; function initMap() { var mapContainer document.getElementById(map), mapOption { center: new kakao.maps.LatLng(35.95, 127.7), // 한국 중심 좌표 level: 13 // 지도 확대 레벨 }; map new kakao.maps.Map(mapContainer, mapOption); customOverlay new kakao.maps.CustomOverlay({}); } function fetchLivestockData(countyCode, itemCode, date) { document.getElementById(loading).style.display block; const formattedDate formatDate(date); const url `/api/livestock?countyCode${countyCode}&itemCode${itemCode}&date${formattedDate}`; fetch(url) .then(response > response.json()) .then(data > { console.log(Livestock data:, data); updateMap(data, itemCode); }) .catch(error > { console.error(Error fetching livestock data:, error); alert(데이터를 불러오는 데 실패했습니다.); }) .finally(() > { document.getElementById(loading).style.display none; }); } function updateMap(data, itemCode) { updateInfoPanel(data, itemCode); // 평균 가격 계산 const averagePrice calculateAveragePrice(data); // 지도 색상 업데이트 Object.values(polygons).forEach(polygon > { const color getColor(averagePrice); polygon.setOptions({ fillColor: color }); }); } function calculateAveragePrice(data) { const prices data.map(item > parseFloat(item.todayPrice.replace(,, ))); return prices.reduce((a, b) > a + b, 0) / prices.length; } function getColor(price) { for (let i colorScale.length - 1; i > 0; i--) { if (price > colorScalei.threshold) { return colorScalei.color; } } return colorScale0.color; } function updateInfoPanel(data, itemCode) { const infoPanel document.getElementById(info-panel); const itemName { 411: 소, 412: 돼지, 413: 닭 }itemCode; let html `h3>${itemName} 가격 정보/h3>`; html + ul>; data.forEach(item > { html + `li>${item.part}: ${item.todayPrice}원 (${item.todayDate})/li>`; }); html + /ul>; infoPanel.innerHTML html; } function initControls() { document.getElementById(date-picker).value formatDate(currentDate); document.querySelectorAll(inputnamelivestock).forEach(input > { input.addEventListener(change, function() { currentItemCode this.value; if (currentlySelectedArea) { fetchLivestockData(currentlySelectedArea.code, currentItemCode, currentDate); } }); }); document.getElementById(date-picker).addEventListener(change, function() { currentDate new Date(this.value); if (currentlySelectedArea) { fetchLivestockData(currentlySelectedArea.code, currentItemCode, currentDate); } }); week-ago, month-ago, year-ago.forEach(id > { document.getElementById(id).addEventListener(click, function() { let newDate new Date(currentDate); switch(this.id) { case week-ago: newDate.setDate(newDate.getDate() - 7); break; case month-ago: newDate.setMonth(newDate.getMonth() - 1); break; case year-ago: newDate.setFullYear(newDate.getFullYear() - 1); break; } document.getElementById(date-picker).value formatDate(newDate); currentDate newDate; if (currentlySelectedArea) { fetchLivestockData(currentlySelectedArea.code, currentItemCode, currentDate); } }); }); } function formatDate(date) { return date.toISOString().split(T)0; } function processCoordinates(coordinates) { if (Array.isArray(coordinates00)) { // 다중 폴리곤 return coordinates.map(poly > poly.map(coord > new kakao.maps.LatLng(coord1, coord0))); } else { // 단일 폴리곤 return coordinates.map(coord > new kakao.maps.LatLng(coord1, coord0)); } } function displayArea(area) { let polygonPaths Array.isArray(area.path0) ? area.path : area.path; polygonPaths.forEach(path > { let polygon new kakao.maps.Polygon({ map: map, path: path, strokeWeight: 2, strokeColor: #004c80, strokeOpacity: 0.8, fillColor: #fff, fillOpacity: 0.7 }); polygonsarea.code polygon; kakao.maps.event.addListener(polygon, mouseover, function(mouseEvent) { polygon.setOptions({fillColor: #09f}); showSummary(mouseEvent, area); }); kakao.maps.event.addListener(polygon, mouseout, function() { polygon.setOptions({fillColor: #fff}); hideSummary(); }); kakao.maps.event.addListener(polygon, click, function() { currentlySelectedArea area; fetchLivestockData(area.code, currentItemCode, currentDate); }); }); // 폴리곤 중심점에 이름 표시 let bounds new kakao.maps.LatLngBounds(); polygonPaths.forEach(path > { path.forEach(coord > bounds.extend(coord)); }); let center bounds.getCenter(); new kakao.maps.CustomOverlay({ map: map, position: center, content: `div classarea-label>${area.name}/div>`, yAnchor: 1 }); } function showSummary(event, area) { const summary document.getElementById(summary); summary.innerHTML `h4>${area.name}/h4>p>데이터 로딩 중.../p>`; summary.style.display block; summary.style.left `${event.clientX + 10}px`; summary.style.top `${event.clientY + 10}px`; fetchLivestockData(area.code, currentItemCode, currentDate, true); } function updateInfoPanel(data, itemCode) { const infoPanel document.getElementById(info-panel); const itemName ITEM_CODE_MAPitemCode; let html `h3>${itemName} 가격 정보/h3>`; if (data.length 0) { html + p>데이터가 없습니다./p>; } else { html + ul>; data.forEach(item > { html + `li>${item.kindName}: ${item.price}${item.unit} (${item.date})/li>`; }); html + /ul>; } infoPanel.innerHTML html; } function updateMap(data, itemCode) { // KAMIS API는 전국 평균 데이터만 제공하므로, 모든 지역을 동일한 색상으로 업데이트 const averagePrice calculateAveragePrice(data); const color getColor(averagePrice); Object.values(polygons).forEach(polygon > { polygon.setOptions({ fillColor: color }); }); } function hideSummary() { document.getElementById(summary).style.display none; } function fetchLivestockData(itemCode, date) { const loadingElement document.getElementById(loading); loadingElement.style.display block; const formattedDate formatDate(date); const url `/api/livestock?itemCode${itemCode}&date${formattedDate}`; fetch(url) .then(response > response.json()) .then(data > { console.log(Livestock data:, data); if (data && data.length > 0) { updateMap(data, itemCode); updateInfoPanel(data, itemCode); } else { console.error(No data received from API); document.getElementById(info-panel).innerHTML p>데이터가 없습니다./p>; resetMapColors(); } }) .catch(error > { console.error(Error fetching livestock data:, error); alert(데이터를 불러오는 데 실패했습니다.); document.getElementById(info-panel).innerHTML p>데이터를 불러오는 데 실패했습니다./p>; resetMapColors(); }) .finally(() > { loadingElement.style.display none; }); } function calculateAveragePrice(data) { if (data.length 0) return 0; const prices data.map(item > parseFloat(item.todayPrice.replace(,, ))); return prices.reduce((a, b) > a + b, 0) / prices.length; } // 지도 색상 업데이트 const averagePrice calculateAveragePrice(data); const color getColor(averagePrice); if (currentlySelectedArea && polygonscurrentlySelectedArea.code) { polygonscurrentlySelectedArea.code.setOptions({ fillColor: color }); } // 페이지 로드 시 실행 window.onload function() { initMap(); initControls(); fetch(/api/livestock/codes) .then(response > response.json()) .then(codes > { // GeoJSON 로드 return Promise.all( codes, fetch(korea.json).then(response > response.json()) ); }) .then((codes, geojson) > { geojson.features.forEach(feature > { let name feature.properties.SIG_KOR_NM || feature.properties.CTP_KOR_NM; let code feature.properties.SIG_CD || feature.properties.CTPRVN_CD; let coordinates feature.geometry.coordinates; if (name && code) { let area { name: name, code: code, path: processCoordinates(coordinates) }; areas.push(area); displayArea(area); } }); // 초기 데이터 로드 if (areas.length > 0) { currentlySelectedArea areas0; fetchLivestockData(currentlySelectedArea.code, currentItemCode, currentDate); } }) .catch(error > { console.error(Failed to load data:, error); }); }; /*>*//script>/body>/html>
Port 443
HTTP/1.1 200 Date: Fri, 20 Sep 2024 13:24:38 GMTContent-Type: text/html;charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveServer: nginx/1.24.0 (Ubuntu)Content-Language: en !DOCTYPE html>html>head> meta charsetUTF-8> title>한국 축산물 정보 지도/title> style> #loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(255, 255, 255, 0.8); padding: 20px; border-radius: 5px; display: none; } #tooltip { position: absolute; background: white; border: 1px solid #ccc; padding: 5px; border-radius: 3px; display: none; z-index: 1000; } #info-panel { position: absolute; top: 10px; right: 10px; width: 300px; background: white; padding: 10px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.1); } .area-label { background: white; padding: 2px 5px; border-radius: 3px; border: 1px solid #ccc; font-size: 12px; } #controls { position: absolute; top: 10px; left: 10px; z-index: 1000; background-color: white; padding: 10px; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); } #map-container { position: relative; width: 100%; height: 800px; } #map { width: 100%; height: 100%; } #summary { position: absolute; background: white; padding: 5px; border-radius: 3px; box-shadow: 0 0 5px rgba(0,0,0,0.1); display: none; } /style>/head>body>div idcontrols> div> label>input typeradio namelivestock value411 checked> 소/label> label>input typeradio namelivestock value412> 돼지/label> label>input typeradio namelivestock value413> 닭/label> /div> div> input typedate iddate-picker> button idweek-ago>1주일 전/button> button idmonth-ago>1달 전/button> button idyear-ago>1년 전/button> /div>/div>div idmap-container> div idmap>/div> div idloading>데이터 로딩 중.../div> div idtooltip>/div> div idinfo-panel>/div>/div>div idsummary>/div>script srchttps://code.jquery.com/jquery-3.6.0.min.js>/script>script typetext/javascript src//dapi.kakao.com/v2/maps/sdk.js?appkey9b414f66f932264b589c396ddc77f435>/script>script> /*!CDATA*/ let map, customOverlay; let areas ; let currentItemCode 411; // 기본값: 소 let currentDate new Date(); currentDate.setDate(currentDate.getDate() - 1); // 기본값을 하루 전으로 설정 let currentlySelectedArea; // 색상 스케일 정의 (예: 가격에 따른 색상) const colorScale { threshold: 10000, color: #FFEDA0 }, { threshold: 20000, color: #FEB24C }, { threshold: 30000, color: #F03B20 } ; // 폴리곤 저장을 위한 객체 const polygons {}; function initMap() { var mapContainer document.getElementById(map), mapOption { center: new kakao.maps.LatLng(35.95, 127.7), // 한국 중심 좌표 level: 13 // 지도 확대 레벨 }; map new kakao.maps.Map(mapContainer, mapOption); customOverlay new kakao.maps.CustomOverlay({}); } function fetchLivestockData(countyCode, itemCode, date) { document.getElementById(loading).style.display block; const formattedDate formatDate(date); const url `/api/livestock?countyCode${countyCode}&itemCode${itemCode}&date${formattedDate}`; fetch(url) .then(response > response.json()) .then(data > { console.log(Livestock data:, data); updateMap(data, itemCode); }) .catch(error > { console.error(Error fetching livestock data:, error); alert(데이터를 불러오는 데 실패했습니다.); }) .finally(() > { document.getElementById(loading).style.display none; }); } function updateMap(data, itemCode) { updateInfoPanel(data, itemCode); // 평균 가격 계산 const averagePrice calculateAveragePrice(data); // 지도 색상 업데이트 Object.values(polygons).forEach(polygon > { const color getColor(averagePrice); polygon.setOptions({ fillColor: color }); }); } function calculateAveragePrice(data) { const prices data.map(item > parseFloat(item.todayPrice.replace(,, ))); return prices.reduce((a, b) > a + b, 0) / prices.length; } function getColor(price) { for (let i colorScale.length - 1; i > 0; i--) { if (price > colorScalei.threshold) { return colorScalei.color; } } return colorScale0.color; } function updateInfoPanel(data, itemCode) { const infoPanel document.getElementById(info-panel); const itemName { 411: 소, 412: 돼지, 413: 닭 }itemCode; let html `h3>${itemName} 가격 정보/h3>`; html + ul>; data.forEach(item > { html + `li>${item.part}: ${item.todayPrice}원 (${item.todayDate})/li>`; }); html + /ul>; infoPanel.innerHTML html; } function initControls() { document.getElementById(date-picker).value formatDate(currentDate); document.querySelectorAll(inputnamelivestock).forEach(input > { input.addEventListener(change, function() { currentItemCode this.value; if (currentlySelectedArea) { fetchLivestockData(currentlySelectedArea.code, currentItemCode, currentDate); } }); }); document.getElementById(date-picker).addEventListener(change, function() { currentDate new Date(this.value); if (currentlySelectedArea) { fetchLivestockData(currentlySelectedArea.code, currentItemCode, currentDate); } }); week-ago, month-ago, year-ago.forEach(id > { document.getElementById(id).addEventListener(click, function() { let newDate new Date(currentDate); switch(this.id) { case week-ago: newDate.setDate(newDate.getDate() - 7); break; case month-ago: newDate.setMonth(newDate.getMonth() - 1); break; case year-ago: newDate.setFullYear(newDate.getFullYear() - 1); break; } document.getElementById(date-picker).value formatDate(newDate); currentDate newDate; if (currentlySelectedArea) { fetchLivestockData(currentlySelectedArea.code, currentItemCode, currentDate); } }); }); } function formatDate(date) { return date.toISOString().split(T)0; } function processCoordinates(coordinates) { if (Array.isArray(coordinates00)) { // 다중 폴리곤 return coordinates.map(poly > poly.map(coord > new kakao.maps.LatLng(coord1, coord0))); } else { // 단일 폴리곤 return coordinates.map(coord > new kakao.maps.LatLng(coord1, coord0)); } } function displayArea(area) { let polygonPaths Array.isArray(area.path0) ? area.path : area.path; polygonPaths.forEach(path > { let polygon new kakao.maps.Polygon({ map: map, path: path, strokeWeight: 2, strokeColor: #004c80, strokeOpacity: 0.8, fillColor: #fff, fillOpacity: 0.7 }); polygonsarea.code polygon; kakao.maps.event.addListener(polygon, mouseover, function(mouseEvent) { polygon.setOptions({fillColor: #09f}); showSummary(mouseEvent, area); }); kakao.maps.event.addListener(polygon, mouseout, function() { polygon.setOptions({fillColor: #fff}); hideSummary(); }); kakao.maps.event.addListener(polygon, click, function() { currentlySelectedArea area; fetchLivestockData(area.code, currentItemCode, currentDate); }); }); // 폴리곤 중심점에 이름 표시 let bounds new kakao.maps.LatLngBounds(); polygonPaths.forEach(path > { path.forEach(coord > bounds.extend(coord)); }); let center bounds.getCenter(); new kakao.maps.CustomOverlay({ map: map, position: center, content: `div classarea-label>${area.name}/div>`, yAnchor: 1 }); } function showSummary(event, area) { const summary document.getElementById(summary); summary.innerHTML `h4>${area.name}/h4>p>데이터 로딩 중.../p>`; summary.style.display block; summary.style.left `${event.clientX + 10}px`; summary.style.top `${event.clientY + 10}px`; fetchLivestockData(area.code, currentItemCode, currentDate, true); } function updateInfoPanel(data, itemCode) { const infoPanel document.getElementById(info-panel); const itemName ITEM_CODE_MAPitemCode; let html `h3>${itemName} 가격 정보/h3>`; if (data.length 0) { html + p>데이터가 없습니다./p>; } else { html + ul>; data.forEach(item > { html + `li>${item.kindName}: ${item.price}${item.unit} (${item.date})/li>`; }); html + /ul>; } infoPanel.innerHTML html; } function updateMap(data, itemCode) { // KAMIS API는 전국 평균 데이터만 제공하므로, 모든 지역을 동일한 색상으로 업데이트 const averagePrice calculateAveragePrice(data); const color getColor(averagePrice); Object.values(polygons).forEach(polygon > { polygon.setOptions({ fillColor: color }); }); } function hideSummary() { document.getElementById(summary).style.display none; } function fetchLivestockData(itemCode, date) { const loadingElement document.getElementById(loading); loadingElement.style.display block; const formattedDate formatDate(date); const url `/api/livestock?itemCode${itemCode}&date${formattedDate}`; fetch(url) .then(response > response.json()) .then(data > { console.log(Livestock data:, data); if (data && data.length > 0) { updateMap(data, itemCode); updateInfoPanel(data, itemCode); } else { console.error(No data received from API); document.getElementById(info-panel).innerHTML p>데이터가 없습니다./p>; resetMapColors(); } }) .catch(error > { console.error(Error fetching livestock data:, error); alert(데이터를 불러오는 데 실패했습니다.); document.getElementById(info-panel).innerHTML p>데이터를 불러오는 데 실패했습니다./p>; resetMapColors(); }) .finally(() > { loadingElement.style.display none; }); } function calculateAveragePrice(data) { if (data.length 0) return 0; const prices data.map(item > parseFloat(item.todayPrice.replace(,, ))); return prices.reduce((a, b) > a + b, 0) / prices.length; } // 지도 색상 업데이트 const averagePrice calculateAveragePrice(data); const color getColor(averagePrice); if (currentlySelectedArea && polygonscurrentlySelectedArea.code) { polygonscurrentlySelectedArea.code.setOptions({ fillColor: color }); } // 페이지 로드 시 실행 window.onload function() { initMap(); initControls(); fetch(/api/livestock/codes) .then(response > response.json()) .then(codes > { // GeoJSON 로드 return Promise.all( codes, fetch(korea.json).then(response > response.json()) ); }) .then((codes, geojson) > { geojson.features.forEach(feature > { let name feature.properties.SIG_KOR_NM || feature.properties.CTP_KOR_NM; let code feature.properties.SIG_CD || feature.properties.CTPRVN_CD; let coordinates feature.geometry.coordinates; if (name && code) { let area { name: name, code: code, path: processCoordinates(coordinates) }; areas.push(area); displayArea(area); } }); // 초기 데이터 로드 if (areas.length > 0) { currentlySelectedArea areas0; fetchLivestockData(currentlySelectedArea.code, currentItemCode, currentDate); } }) .catch(error > { console.error(Failed to load data:, error); }); }; /*>*//script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]