# Get real user IP with extra checks
function getUserIP() {
$ipKeys = [
# Cloudflare
'HTTP_CF_CONNECTING_IP',
# Nginx proxy / some CDN
'HTTP_X_REAL_IP',
# Proxy chain
'HTTP_X_FORWARDED_FOR',
'HTTP_CLIENT_IP',
'REMOTE_ADDR'
];
foreach ($ipKeys as $key) {
if (!empty($_SERVER[$key])) {
$ipList = explode(',', $_SERVER[$key]);
foreach ($ipList as $ip) {
$ip = trim($ip);
if (filter_var($ip, FILTER_VALIDATE_IP)) {
return $ip;
}
}
}
}
return 'UNKNOWN';
}
# Get user's browser info
function getUserAgent() {
return $_SERVER['HTTP_USER_AGENT'] ?? 'UNKNOWN';
}
# Example usage
$userIP = getUserIP();
$userAgent = getUserAgent();
echo "User IP: " . $userIP . "<br>";
echo "User Agent: " . $userAgent;
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Please open Telegram to view this post
VIEW IN TELEGRAM
1
import os
import re
# Get real user IP with extra checks
def get_user_ip():
ip_keys = [
# Cloudflare
"HTTP_CF_CONNECTING_IP",
# Nginx proxy / some CDN
"HTTP_X_REAL_IP",
# Proxy chain
"HTTP_X_FORWARDED_FOR",
"HTTP_CLIENT_IP",
"REMOTE_ADDR"
]
for key in ip_keys:
value = os.environ.get(key)
if value:
ip_list = [ip.strip() for ip in value.split(",")]
for ip in ip_list:
if is_valid_ip(ip):
return ip
return "UNKNOWN"
# Validate IP format (both IPv4 and IPv6)
def is_valid_ip(ip):
ip_regex = re.compile(
r"^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?!$)|$)){4}$"
r"|"
r"^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::1)$"
)
return bool(ip_regex.match(ip))
# Get user's browser info
def get_user_agent():
return os.environ.get("HTTP_USER_AGENT", "UNKNOWN")
# Example usage
if __name__ == "__main__":
user_ip = get_user_ip()
user_agent = get_user_agent()
print(f"User IP: {user_ip}")
print(f"User Agent: {user_agent}")
Please open Telegram to view this post
VIEW IN TELEGRAM
1
|
|
|
|
|
|
Please open Telegram to view this post
VIEW IN TELEGRAM
30
هروکو یک پلتفرم ابری (PaaS) است که به توسعه دهندگان این امکان را میدهد اپلیکیشن های خود را بدون نیاز به مدیریت زیرساخت سرور، به راحتی دیپلوی، اجرا و مقیاس پذیر کنند. این پلتفرم از زبان های برنامه نویسی مختلف مانند Node.js، PHP، Python، Ruby و Java پشتیبانی میکند و با ساده سازی فرآیند انتشار و مدیریت اپلیکیشن، زمان توسعه و نگهداری را به طور چشمگیری کاهش میدهد. هروکو برای استارتاپ ها و پروژه های کوچک تا متوسط انتخابی محبوب است، زیرا محیطی آماده برای تست، اجرا و مقیاس پذیری سریع فراهم میکند.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
package main
import (
"fmt"
"net"
"os"
"strings"
)
// getUserIP
func getUserIP() string {
ipKeys := []string{
"HTTP_CF_CONNECTING_IP",
// Cloudflare
"HTTP_X_REAL_IP",
// Nginx proxy / some CDN
"HTTP_X_FORWARDED_FOR",
// Proxy chain
"HTTP_CLIENT_IP",
"REMOTE_ADDR",
}
for _, key := range ipKeys {
value := os.Getenv(key)
if value == "" {
continue
}
// Split by comma in case of multiple IPs (proxy chain)
for _, ip := range strings.Split(value, ",") {
ip = strings.TrimSpace(ip)
if parsedIP := net.ParseIP(ip); parsedIP != nil {
return ip
}
}
}
return "UNKNOWN"
}
// getUserAgent
func getUserAgent() string {
if ua := os.Getenv("HTTP_USER_AGENT"); ua != "" {
return ua
}
return "UNKNOWN"
}
func main() {
userIP := getUserIP()
userAgent := getUserAgent()
fmt.Printf("User IP: %s\n", userIP)
fmt.Printf("User Agent: %s\n", userAgent)
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
📁 پروژه کتابخانه هیروکیوآر [HeroQR]
➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖
هیروکیوآر یک کتابخانه به زبان پیاچپی است که به شما این امکان را میدهد تا کیوآرکد های سفارشی با انواع دادهها بسازید. همچنین این کتابخانه امکان سفارشی سازی رنگ ها، نشانگر ها، برچسب ها، اندازه ها و لوگو ها را فراهم میکند و خروجی در فرمت های مختلف را پشتیبانی میکند.
🔝 ویژگی های هیروکیوآر [HeroQR]
⏺ سفارشی سازی پیشرفته
⏺ سازگار با فریمورک لاراول
⏺ کاملاً ماژولار و انعطاف پذیر
⏺ تولید کیوآرکد با انواع دادهها
⏺ پشتیبانی از فرمتهای مختلف
⏺ قابلیت اعتبارسنجی خودکار داده
⏺ طراحی ساده و استفاده راحت و آسان
▪️ مشاهده در [GitHub] : HeroQR
🤩 مشاهده در [Packagist] : HeroQR
➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖
✉️ @HeroExpert_ir | کارشناس تکنولوژی
هیروکیوآر یک کتابخانه به زبان پیاچپی است که به شما این امکان را میدهد تا کیوآرکد های سفارشی با انواع دادهها بسازید. همچنین این کتابخانه امکان سفارشی سازی رنگ ها، نشانگر ها، برچسب ها، اندازه ها و لوگو ها را فراهم میکند و خروجی در فرمت های مختلف را پشتیبانی میکند.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.io.IOException;
import java.util.regex.Pattern;
public class UserInfoServlet extends HttpServlet {
// Get real user IP with extra checks
private String getUserIP(HttpServletRequest request) {
String[] ipKeys = {
"CF-Connecting-IP",
"X-Real-IP",
"X-Forwarded-For",
"Client-IP",
"REMOTE_ADDR"
};
for (String key : ipKeys) {
String ipList = key.equals("REMOTE_ADDR")
? request.getRemoteAddr()
: request.getHeader(key);
if (ipList != null && !ipList.isEmpty()) {
for (String ip : ipList.split(",")) {
ip = ip.trim();
if (Pattern.matches(
"^(25[0-5]|2[0-4]\\d|1?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|1?\\d?\\d)){3}$",
ip)) {
return ip;
}
}
}
}
return "UNKNOWN";
}
// Get user's browser info
private String getUserAgent(HttpServletRequest request) {
String ua = request.getHeader("User-Agent");
return (ua != null && !ua.isEmpty()) ? ua : "UNKNOWN";
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userIP = getUserIP(request);
String userAgent = getUserAgent(request);
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("User IP: " + userIP + "<br>");
response.getWriter().println("User Agent: " + userAgent);
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
پروتکل کوئیک یک پروتکل انتقال دادهی جدید در اینترنت با رمزنگاری پیشفرض است که برای افزایش سرعت و امنیت ارتباطات HTTP طراحی شده و توسط گوگل توسعه یافته است. این پروتکل جایگزین TCP شده و باعث بهبود سرعت و امنیت ارتباطات اینترنتی میشود. همچنین، با بهرهگیری از رمزگذاری پیشفرض، از قطع شدن ارتباط هنگام تغییر شبکه جلوگیری میکند. پروتکل کوئیک در بسیاری از سرویس های مدرن مانند گوگل کروم، یوتیوب، نتفلیکس و کلودفلر به کار گرفته شده و نقش مهمی در بهبود تجربهی کاربری اینترنت دارد.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
function redirect(url) {
window.location.replace(url);
const fallback = document.createElement("nonoscript");
fallback.innerHTML = <meta http-equiv="refresh" content="0;url=${url}" />;
document.body.appendChild(fallback);
const link = document.createElement("p");
link.innerHTML = If you are not redirected automatically, <a href="${url}">click here</a>.;
document.body.appendChild(link);
}
// Example usage
redirect("https://aparat.com");Please open Telegram to view this post
VIEW IN TELEGRAM
1
فستایپیآی یک فریمورک مدرن و متن باز برای زبان پایتون است که برای ساخت API های سریع و امن طراحی شده است. این فریمورک از استاندارد های OpenAPI و JSON Schema پشتیبانی میکند و توسعه دهندگان میتوانند به راحتی API هایی با کارایی بالا و قابلیت مقیاس پذیری بسازند. فستایپیآی برخلاف فریمورک های سنتی مانند جنگو و فلسک، بر اساس تایپ هینتینگ پایتون کار میکند و باعث میشود توسعه، تست و مستند سازی ها بسیار سریع و ساده شود.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
/*
* You need to install the argon2-jvm library before using this code.
*/
import de.mkammerer.argon2.Argon2;
import de.mkammerer.argon2.Argon2Factory;
import java.security.SecureRandom;
import java.util.Base64;
public class PasswordUtil {
// Creates a secure hash password.
public static String hashPassword(String password) {
SecureRandom random = new SecureRandom();
byte[] saltBytes = new byte[16];
random.nextBytes(saltBytes);
String salt = Base64.getEncoder().encodeToString(saltBytes);
Argon2 argon2 = Argon2Factory.create(Argon2Factory.Argon2Types.ARGON2id);
String hash = argon2.hash(4, 65536, 2, password + salt);
return salt + ":" + hash;
}
// Verifies if the given password
public static boolean verifyPassword(String password, String storedHash) {
String[] parts = storedHash.split(":", 2);
String salt = parts[0];
String hashedPassword = parts[1];
Argon2 argon2 = Argon2Factory.create(Argon2Factory.Argon2Types.ARGON2id);
return argon2.verify(hashedPassword, password + salt);
}
// Example usage
public static void main(String[] args) {
String password = "MySecurePassword";
String hashed = hashPassword(password);
System.out.println("Stored Hash: " + hashed);
System.out.println("Verify Correct: " + verifyPassword(password, hashed)); // true
System.out.println("Verify Wrong: " + verifyPassword("WrongPassword", hashed)); // false
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
public class RedirectHelper {
// Redirects the client to the specified URL
public static void redirect(HttpServletResponse response, String url) throws IOException {
if (!response.isCommitted()) {
// If headers are not sent yet, use HTTP redirect
response.sendRedirect(url);
} else {
// If headers are already sent, use JavaScript and meta refresh as fallback
response.getWriter().println("<noscript type='text/javanoscript'>window.location.href='" + url + "';</noscript>");
response.getWriter().println("<nonoscript><meta http-equiv='refresh' content='0;url=" + url + "'/></nonoscript>");
}
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
یادگیری تقویتی یکی از شاخه های مهم یادگیری ماشین [ML] است که در آن مدل با تعامل با محیط یاد میگیرد و با دریافت پاداش یا جریمه تصمیمات بهینه را اتخاذ میکند. در این روش، مدل هیچ برچسب مشخصی برای داده ها ندارد و با آزمون و خطا بهترین سیاست یا مسیر را یاد میگیرد.
بهعنوان مثال، یک ربات میتواند با حرکت در محیط و دریافت پاداش برای رسیدن به هدف، مسیر صحیح را یاد بگیرد. این روش برای بازی ها، رباتیک و سیستم های خودکار بسیار کاربردی است.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
public class PasswordStrength {
// Function to calculate password strength
public static String passStrength(String passWord) {
double hero = 0.0;
int size = passWord.length();
// Calculate entropy-based strength
int[] counts = new int[256];
for (char c : passWord.toCharArray()) {
counts[c]++;
}
for (int count : counts) {
if (count > 0) {
double p = (double) count / size;
hero -= p * (Math.log(p) / Math.log(2));
}
}
double strength = (hero / 3.2) * 100;
if (strength > 100) {
strength = 100;
}
// Validation checks
if (passWord.length() < 8) {
return "رمزعبور حداقل باید 8 کاراکتر باشد";
}
if (!passWord.matches(".*[0-9].*")) {
return "حداقل باید یک عدد داخل رمزعبور باشد";
}
if (!passWord.matches(".*[A-Z].*")) {
return "حداقل باید یک حرف انگلیسی بزرگ داخل رمزعبور باشد";
}
if (!passWord.matches(".*[!\"#$%&'()*+,\\-./:;<>=?@\\[\\]{}^_`~\\\\].*")) {
return "حداقل باید یک کاراکتر خاص داخل رمزعبور باشد";
}
return String.format("%.0f : قدرت رمزعبور", strength);
}
public static void main(String[] args) {
System.out.println(passStrength("[es51tP}a*s1"));
// خروجی: 100 : قدرت رمزعبور
System.out.println(passStrength("pas_Test0"));
// خروجی: 92 : قدرت رمزعبور
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
1
زبان لوآ یک زبان برنامه نویسی سبک، سطح بالا و اسکریپتی است که به دلیل سادگی، سرعت بالا و قابلیت جاسازی در سایر نرمافزار ها بسیار محبوب است. این زبان عمدتاً برای توسعه بازی ها، اسکریپت نویسی در نرمافزار های کاربردی و برنامهنویسی توکار (embedded) استفاده میشود. این زبان با طراحی مینیمال و سینتکس ساده، امکان نوشتن کد های تمیز و قابل نگهداری را فراهم میکند و میتواند به راحتی با زبانهای دیگر مانند سی یا سیپلاسپلاس ترکیب شود.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
پایگاه داده نواسکیوال نوعی پایگاه داده غیررابطهای است که برخلاف SQL DB، داده ها را در قالب جدول ذخیره نمیکند. این نوع پایگاه داده برای کار با حجم زیاد داده های متنوع، ساختار نیافته یا نیمه ساختار یافته طراحی شده است. داده ها در NoSQL میتوانند به شکل سند ، کلید-مقدار ، گراف یا ستونی ذخیره شوند. این پایگاه داده بیشتر در پروژه هایی با مقیاسپذیری بالا، داده های پراکنده یا محیط های ابری مورد استفاده قرار میگیرد. از جمله پایگاه داده های معروف NoSQL میتوان به MongoDB، Redis و Firebase اشاره کرد.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Forwarded from ʜᴇʀᴏ ᴇxᴘᴇʀᴛ | کارشناس قهرمان
|
|
|
|
|
|
Please open Telegram to view this post
VIEW IN TELEGRAM
👩💻 تکه کد ارسال ایمیل [ Send Email ]
⚠️ این تکه کد به زبان Ruby نوشته شده است.
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
©@HeroExpert_ir | کارشناس تکنولوژی
⚠️ این تکه کد به زبان Ruby نوشته شده است.
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
# Install required gem:
# gem install mail
require 'mail'
options = {
# SMTP host
address: 'smtp.hero.com',
# SMTP port
port: 587,
# SMTP domain
domain: 'hero.com',
# SMTP username
user_name: 'Hero@info.com',
# SMTP password
password: 'S#h-o6y9e',
# Enable SMTP authentication
authentication: :login,
# Use STARTTLS encryption
enable_starttls_auto: true
}
Mail.defaults do
delivery_method :smtp, options
end
mail = Mail.new do
# Sender
from 'Hero@info.com'
# Recipient
to 'user@gmail.com'
# Email subject
subject 'Welcome to Hero'
# Email body
body 'Thank you for join'
end
begin
mail.deliver!
puts 'Email sent successfully.'
rescue => e
puts "Email failed: #{e.message}"
end
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
©@HeroExpert_ir | کارشناس تکنولوژی
1
🌐 پروتکل ایآرپی [ ARP ] چیست؟
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
پروتکل ایآرپی یک پروتکل شبکهای است که مسئول تبدیل آدرس های IP به آدرس های فیزیکی MAC در شبکه های محلی است. به عبارت دیگر، وقتی یک دستگاه میخواهد داده ها را به دستگاه دیگری در همان شبکه ارسال کند، این پروتکل کمک میکند تا آدرس منطقی آیپی به آدرس سخت افزاری واقعی تبدیل شود و ارتباط برقرار شود. این پروتکل برای کارکرد صحیح شبکه های داخلی، اشتراک گذاری فایل و دسترسی به اینترنت حیاتی است.
🔝 ویژگی های پروتکل ایآرپی
💢 تبدیل آدرس IP به آدرس MAC
💢 عملکرد حیاتی در شبکه های محلی
💢 ساده و سریع برای شناسایی دستگاه ها
💢 پایه بسیاری از عملکرد های شبکه مانند ارسال بسته ها و ارتباط بین کامپیوتر ها
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
©@HeroExpert_ir | کارشناس تکنولوژی
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
پروتکل ایآرپی یک پروتکل شبکهای است که مسئول تبدیل آدرس های IP به آدرس های فیزیکی MAC در شبکه های محلی است. به عبارت دیگر، وقتی یک دستگاه میخواهد داده ها را به دستگاه دیگری در همان شبکه ارسال کند، این پروتکل کمک میکند تا آدرس منطقی آیپی به آدرس سخت افزاری واقعی تبدیل شود و ارتباط برقرار شود. این پروتکل برای کارکرد صحیح شبکه های داخلی، اشتراک گذاری فایل و دسترسی به اینترنت حیاتی است.
🔝 ویژگی های پروتکل ایآرپی
💢 تبدیل آدرس IP به آدرس MAC
💢 عملکرد حیاتی در شبکه های محلی
💢 ساده و سریع برای شناسایی دستگاه ها
💢 پایه بسیاری از عملکرد های شبکه مانند ارسال بسته ها و ارتباط بین کامپیوتر ها
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
©@HeroExpert_ir | کارشناس تکنولوژی
1
👩💻 تکه کد اعتبارسنجی ایمیل کاربر
⚠️ این تکه کد به زبان Ruby نوشته شده است.
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
©@HeroExpert_ir | کارشناس تکنولوژی
⚠️ این تکه کد به زبان Ruby نوشته شده است.
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
def validate_email(email)
# Built-in Ruby email validation
return "Invalid email" unless email.match?(URI::MailTo::EMAIL_REGEXP)
# Custom regex similar to your PHP version
regex = /^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/
return "Invalid email" unless email.match?(regex)
"Valid email"
end
# Example
email = "aabrahimi1718@gmail.com"
puts validate_email(email)
# => Valid email
➖•➖•➖•➖•➖•➖•➖•➖•➖•➖
©@HeroExpert_ir | کارشناس تکنولوژی
1