Tôi phải triển khai giải pháp từ WinApp
được viết bằng C#
đến PHP
. Tôi cần trích xuất số IP
dựa trên số host name
. Các mảnh dưới mã hoạt động hoàn hảo:PHP Nhận IP dựa trên tên máy chủ
IPHostEntry LocalHostIPEntry = Dns.GetHostEntry(hostname);
IPAddress LocalHostIP = LocalHostIPEntry.AddressList[0];
string ipfromhost = LocalHostIP.ToString();
sự lựa chọn duy nhất tôi đã tìm thấy cho đến nay trong PHP
là:
gethostbyname('hostname');
Nhưng đó trả về một khác nhau IP
cho cùng một máy chủ so với mã C#
. Hơn nữa, số IP
trả về không chính xác. Nếu tôi kiểm tra máy chủ liên quan bằng cách sử dụng nslookup -IPaddress-
thì tôi sẽ nhận được một tên máy chủ hoàn toàn khác.
gì đang xảy ra? Bạn có thể sử dụng phương pháp nào khác để tra cứu số IP
của số host
trên mạng bằng cách sử dụng PHP
?
Lỗi này có xảy ra với tất cả tên máy chủ bạn thử không? Bạn nói bạn đang ở trên mạng nội bộ, điều gì sẽ xảy ra khi bạn kiểm tra bên ngoài? Điều gì về gethostbynamel (được một danh sách nếu máy chủ lưu trữ có nhiều IP)? Ngoài ra, gethostbyname sử dụng thư viện giải quyết của hệ điều hành cơ bản (Linux/Windows) - không chắc chắn cách thức hoạt động của phiên bản C#. Cuối cùng, nếu bạn thấy rằng bạn đang truy vấn DNS không chính xác, có thư viện Pear cho rằng: http://pear.php.net/package/Net_DNS2 – lydiat
Dường như nó có thể là một vấn đề cụ thể cho máy: bạn có thể thử cùng một mã (và 'nslookup') từ một máy khác trên cùng một mạng? Ngoài ra, từ một máy ảo hoặc phân phối Linux trực tiếp? – Viruzzo
Đây có phải là chỉ để tìm kiếm DNS ngược hay bạn đang cố gắng để có được DNS chung? – Machavity