How to detect OS version of a web server - operating-system

Is there a way to detect the Operating System version of a web server using its IP address (with knowledge that the web server is running php).
I haven't attempted to code it yet, as i am a beginner. Is it easy? Is it possible or not possible at all?

There's no official way to detect OS on a remote server across all operating systems and configurations. It's often considered a security risk to expose such information, since it can be used to research directed attacks based on the version of the OS and any services it runs.
However, you can fingerprint systems to "guess" the OS, depending on the services it exposes. Many services will reveal the OS that is currently running, some will hint at it or provide broad information about the system.
I certainly wouldn't suggest anyone inexperienced in PHP attempt such a project, but here are some links to get you started:
Finger Protocol: http://en.wikipedia.org/wiki/Finger_protocol
nmap security scanner (includes OS fingerprinting): http://nmap.org/
nmap's book on remote OS detection: http://nmap.org/book/osdetect.html
If you're just trying to find out the OS of the user viewing your website, you should look into the User-Agent HTTP header: http://en.wikipedia.org/wiki/User_agent

your question is kind a unclear but I asume you want to display the OS of the system your website is running on? You can try:
<?php
echo (string)(PHP_OS);
?>
or
<?php
echo $_SERVER['SERVER_SOFTWARE'];
?>
But this will never return a precise version of your OS as it will only indicating the platform(windows, linux, macos, etc) and the latter script also displays 32/64 bit under windows.

Related

How to set up an IDE on a remote server?

Im interested in doing some development from my iPad, and one idea I had would be to code from the safari browser. Does anyone know of a way to set up eclipse on a cloud-based server, so that it can be accessed from a browser?
I believe, you will need the following parts to make it work
The cloud server must be based on one of the supported Eclipse Target Environments.
The cloud server provider must support UI based on some sort of remote desktop - e.g. VNC. Be aware that many cloud providers does not allow UI.
iPad must support the same remote desktop technology. There seem to be many VNC implementations for iPad...
I guess the difficult part is to find a cloud server to use. Though you, as an alternative, could use any PC with an VNC server where you have Internet access...

Create a Virtual Machine from php, perl, or python? Is it possible or has it been done?

I had this thought experiment of installing an OS on a php server over http.
So, what I am asking: Would it be possible to build a VM player (using the server's resources) from a server language like perl, php, or python? Or is my understanding of servers and security lacking in a way that would show this to be impossible?
It's not as outlandish as you might think.
UeberHacker Fabrice Bellard (the guy who created QEMU, among many other notable achievements) recently did precisely that. He created a VM in Javascript. That runs a virtual Linux system in your Web browser:
http://linuxhelp.blogspot.com/2011/05/pc-emulator-in-javascript-run-linux-in.html

setting up server for an iphone app

super basic question - I am building an iphone app but will need to set up my computer as a server so my app can send data to my computer. what are the first steps that i need to take?
Thanks!
If you are writing an iPhone app you are probably on a Macbook so you can easily enable Apache in system preferences, click sharing, enable web sharing it will then show you your computers IP address that you can hit over a web browser.
That will set you up with a web server on your machine. Since your emulator and web server will be on the same wifi network and even if you deploy to the device you can have it on your wifi network you should be able to post data to your Mac's web server.
If you are passing data to it you'll need to read about 'web services', probably REST web services. I would then suggest reading about PHP and/or Ruby or Python as your programming language to interpret what you are posting to the web service.
Hope that helps you on your way.
If you are not on a Mac you can't develop an iPhone app anyways ;) so the above strategy should work for you.
3G will only work for you if your server is available outside of the network. Tons of info online on how to set that up but essentially what you would do is configure your router to forward incoming traffic from (for example) port 8080 to the ip address of your server. Assuming you are on a router.
As a side note, if down the line you use Ruby you could check out http://www.heroku.com/how if you want to host your server there

iPhone HTTP Server

Can someone give me simple code to help with creating an HTTP server for the iPhone. Something simple with much documentation would be appreciated. Anything you have please share.
There are sample codes from Apple and open source community such as cocoahttpserver TouchHTTPD.
Here's a summary blog
Another open-source HTTP server for iPhone is the lightweight GCDWebServer which is built on top of Grand Central Dispatch. It's only a few source code files and offers a simple and extensible API.
If you're unfamiliar with network programming your best bet is to first read Beej's Guide to Network Programming and then read the HTTP 1.1 spec before you look at source code (as you should have an understanding of the protocol before you start looking at implementations).
A simple Google search turned up cocoahttpserver and iSpit. Otherwise, you could download Apache and look at its source code, but that's not exactly a simple implementation.
It is possible to run a simple file server on iPhone/iOS.
I was able to use this method successfully. Here are the steps to create a simple file server which works on http protocol.
1. Install TestFlight app for iOS
2. Install iSH app from the Apple store or side load it from their website, as this app might not be available in the store depending on your country. I tried it from india in May 2020, and the app was not available in the store. So i did side load it from their website.
3. With iSH app, one has access to linux kernel of the iPhone. I did use a simple http server module from python and executed it on the linux shell.
4. Command to run the python based server on iPhone :
Python -m http.server 8080
5. Access the file server using the local ip that’s assigned to the iPhone in the network you are connected to. That means, if iPhone is connected to a WiFi SSID, depending on whether the router is configured to use static IP address assignment based on MAC address or using DHCP protocol, your iPhone will have an internal IP assigned by the router.
6. Command to access the file server :
http://192.168.1.3:8080 - modify the address depending on IP address of the iPhone and the port that server running on iPhone is configured to use. Paste this in a browser - one should be able to see the files listed in the directory where the server is running in.
Hope this was clear enough, for running a simple http based file server on iPhone using http.server module in python, over linux shell of the underlying kernel, using iSH.

Portable USB Webserver

I have project that I'm working on that is going to require a webserver. The webserver will be used to remotely control a presentation using a mobile device.
I see there are quite a few options out there and I'm wondering if someone could provide some recommendations.
My criteria include:
Portable, fits on a USB key
Easy to
run. A user can just click on an
icon, or ideally it would include an
autorun command.
Open Source. I would prefer something licensed under the GPL or similar.
Runs a dynamic server-side language. I see that most have PHP which works perfectly, but I'm open to other languages.
Cross platform if possible.
Right now I'm leaning towards XAMPP, but I would love to hear some suggestions.
XAMPP is perfect for this.
I recommend XAMPP, so I think you are on the right track.
Have not used this, but it looks like it would be right up your alley:
http://www.blackdot.be/?inc=apache/httpserveronusb
Supports perl + php by default.
From the page:
If you are a web developer I'm sure you have had that moment where you went:
"If only I had a web server handy right now!"
Then HTTP Server On USB is something for you! HTTP Server On USB is a fully configured web server that runs from your USB-Key. Plug it in and off you go!
It can be use to show of a website to a costumer, share files with your friends (both ways thanks to DAV) or simply impress people but acting all geeky!
Are you special and do you depend on exotic 3rd party module?
Just drop them in the module folder and edit the configuration file!
Features:
Management Application
Apache 2.2.11
mod_deflate
mod_ssl
mod_security
mod_perl
PHP 5.2.8
ActiveState Perl 5.10
Requirements:
Windows 2000, Windows XP or Windows 2003
256mb USB-key
I have had no luck with XAMPP Lite or USBWebserver. What is currently working really well is Server2Go. I could never get XAMPP to run and USBWebserver would not allow me to install Drupal or Wordpress.
With Server2Go, I was able to install Drupal 7 on the USB Flash Drive, however, only with SQLite. I did need to go to the php folder and copy and rename the production-php.ini file to php.ini. There is a php.ini setting that needs to be set for the MySQL DB to be recognized. It is running well with SQLite for Development purposes though.
LAMPPIX - looks like not up to date, but should do the job.
I would suggest Apache, pretty lightweight and has everything you'll need (PHP).